// *******************************************************************************************************
//      Copyright:  Gerhard Katholnigg / info@katholnigg.de
//
//        Hinweis:  Dieses Script kann mit Zustimmung des Verfassers
//                  verwendet werden. Senden Sie mir bitte eine Kurze
//                  Info der URL, wo dieses Script verwendet wird.
//
//      Eintrag in <HEAD>:
//      ------------------
//      <script language="JavaScript" src="thumb_bild.js"></script>
//
// *******************************************************************************************************

// -------------------------- Parameter Beschreibung ------------ // -------------------------------------
// 
//   Parameter:   <a href=javascript:dopic(BigImage,auto,picx,picy)>[<imgage>]/[Text]</a>
//   ========
//       BigImage:     Verzeichnis/Name von Image welches angezeigt werden soll.
//       ---------
//           auto:     1 = on   /   0 = off    "1" das Image wird automatisch dort angezeigt wo der Maus-Klick ausgeführt wurde.
//           -----
//           picx:     X-Position (horiz.) wo das Image (Layer) ausgegeben werden soll.
//           -----     Hinweis:    Aktive wenn auto = "0"  /  Inaktive wenn auto = "1"
//           picy:     Y-Position (von oben)   Analog zu "picx" !
//           -----
//
// -------------------------------------------------------------- // -------------------------------------

// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Beispiel für KLAVITOMAT:   Auto=0 (sieht besser aus) wie ich es verwende, picx und picy eventuell
// ========================   Position berechnen oder ausprobieren!
// 
// In <HEAD> eintragen:
// --------------------
// <script language="JavaScript" src="../sources/thumb_bild.js"></script>
// 
// In <BODY> eintragen:
// --------------------
// <a href="javascript:dopic('klavitomat.jpg',0,picx='50',picy='2250')" onMouseOver="window.status='Klicken Sie zum vergr&#246;ssern ... !'; return true" onMouseOut="window.status=''; return true">
// <img src="klavitomat_small.jpg" border=0 width=300 height=138>
//
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



//  Start Default = "0":  es ist noch kein Layer erstellt (Image-Ausdgabe)
var trigger=0

//  Start Default = "0":  kein ausgewählter Layer (Image-Ausgabe)
var vis=0
var fx=0
var fy=0

//  -------- Hier können noch weitere VAR eingesetzt werden !! --- (z.Z. ausgeschaltet mit "//") -------------- // ----------------
//
//             Siehe hierfür:   "function dopic"  (Die nachfolgend beschriebene VAR's  sind dort vorhanden !!!)
//             NICHT hier eintragen ist nur INFO !!!
//
//  var rahmen='silver'                               //   Rahmenfarbe
//  var alttext="Klick um Fenster zu schließen"       //   Alt="text"   Anzeige bei MouseOver !
//--------------------------------------------------------------------------------------------------------------------------------------- // ----------------


function initthumb()
	{
		document.onmousemove = sniff
		document.onmouseup = sniff
		document.onmousedown = sniff
		// Trigger Netscape Mouse Check
		if (document.layers){document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP)}
		// Call dummy to help IE get width + height
		if (document.all)dopic('dummy','',1,1,1,1)
	}

function sniff(e){
		// GETS Mouseposition
		if (document.layers) {var mousex=e.pageX; var mousey=e.pageY;fx=mousex;fy=mousey;}
		else if (document.all) {var mousex=event.x; var mousey=event.y+document.body.scrollTop;fx=mousex;fy=mousey}
				}		
function dopic(name,auto,picx,picy)
{
	if (vis == 0) // No layer active, as double layers would bug :(
		{
			
			// Default:  Koordinaten Offset
			var oldpicx=100;
			var oldpicy=100;

			// Border-Farbe
			var rahmen='silver'

			// Alt-text
			var alttext="Klicken, um das Fenster zu schlie&#223;en"

				// Wenn kein Layer vorhanden ...
					if (trigger!=1)
						{
						trigger=1 // There is a layer now!

						// Erstelle hidden layer (Netscape)
							if(document.layers){
								//Piclayer
								document.layers['picarea'] = new Layer(1);
								document.layers['picarea'].left = oldpicx;
								document.layers['picarea'].top = oldpicy;
								document.layers['picarea'].height = 20;
								document.layers['picarea'].visibility = "hidden";
							}

						// Erstelle hidden Layer in Internet Explorer
							else if (document.all){
								document.body.insertAdjacentHTML("BeforeEnd",'<DIV ID="picarea" STYLE="z-index:200;position:absolute;left:"+picx+";top:"+picy></DIV>');
							}
						}

				// Wenn Layer vorhanden, dann hide it!
					if (trigger != 0){
						if (document.layers){document.layers['picarea'].visibility="hide"} //Netscape
						if (document.all){picarea.style.visibility="hidden"}
					}

			// Definiere den Layer Inhalt
			content="<a href=\"javascript:clearpic()\" style=\"color:"+rahmen+"\"><img src=\"";
			content=content+name+"\" name=\"pic\" alt=\""+alttext+"\" border=1";
			content=content+"></A>";

			// Schreibe Inhalt nach Layer und zeig es ( N E T S C A P E )
				if (document.layers) {
					sprite=document.layers['picarea'].document;
  					sprite.open();
					sprite.write(content);
					sprite.close();

					// Wenn Parameter "auto" nicht gesetzt (=0), dann setze Layer auf Position "picx" und "picy"
					if (picx != null && auto == ''){ 
						document.layers['picarea'].left = picx;
						document.layers['picarea'].top = picy;
					}

					// Wenn Parameter "auto" ist gesetzt (=1):
					if (auto != "")
						{ 
						// Hole Image width/height
						xw=document.layers['picarea'].document.images['pic'].width 
						yw=document.layers['picarea'].document.images['pic'].height

						// Setze Image Zentral auf Maus-Position
						newpicx = fx - (xw/2)
					    newpicy = fy - (yw/2)

							// wenn Offset ist gesetzt, dann ...
							if (picx) {newpicx=newpicx + picx}
							if (picy) {newpicy=newpicy + picy} 

						// Plaziere Layer
						document.layers['picarea'].left = newpicx;
						document.layers['picarea'].top = newpicy;
						}

					// Zeige Layer
					document.layers['picarea'].visibility="show";

					// Setze Trigger für sichtbaren Layer
					vis=1
				 }

			// Schreibe Inhalt nach Layer und zeig es ( I N T E R N E T   E X P L O R E R )
				if (document.all) {
					document.all['picarea'].innerHTML = content;

					// Wenn Parameter "auto" nicht gesetzt (=0), dann setze Layer auf Position "picx" und "picy"
					if (picx != null && auto == ''){
						picarea.style.top=picy
						picarea.style.left=picx;
					}

					// Wenn Parameter "auto" ist gesetzt (=1):
					if (auto != "")	{ 

						// Hole Image width/height
						xw=document.all['pic'].width
						yw=document.all['pic'].height

						// Setze Image Zentral auf Maus-Position
				      newpicx = fx - (xw/2)
				      newpicy = fy - (yw/2)
							// wenn Offset ist gesetzt, dann ...
							if (picx) {newpicx=newpicx + picx}
							if (picy) {newpicy=newpicy + picy} 

						// Plaziere Layer
						picarea.style.top=newpicy;
						picarea.style.left=newpicx;
					}

					// Zeige Layer
					// Der Name ist nicht "dummy" ....
						if (name != "dummy") {
							picarea.style.visibility="visible";
							// set trigger vor visible layer
							vis=1
						}
	}
	//  Altes JavaScript erlaubt den Browser das Image zu zeigen
	else if (document.layers == null && document.all == null) {self.location=name};
	}
}

// Verstecke Layers bei Mausklick ...
function clearpic()	{

	// Deaktivier sichtbare Trigger 
	vis=0
		if (document.layers){document.layers['picarea'].visibility="hide"};
		if (document.all){picarea.style.visibility="hidden"};
}
