
windowNamePrefix	=	'shsgm_';

/**
 *	Gibt zurück, ob das aktuelle Fenster ein von uns geöffnetes Popup ist.
 */
function isOurPopup() {

	if ( !window.name ) {
		return	false;
	}

	lengthPrefix		=	windowNamePrefix.length;

	if ( window.name.substring( 0, lengthPrefix ) == windowNamePrefix ) {
		return	true;
	}

	return	false;

}

/**
 *	Wird von den verschiedenen openWindow...()-Funktionen benutzt um das eigentliche
 *	Öffnen durchzuführen.
 *
 *	url - die zu öffnene Url
 *
 *	name - der Name des Fensters
 */
function openWindowGeneral( url, name ) {

	var	widthWindow			=	650;
	var	heightWindow		=	690;

	var screenX				=	10;
	var screenY				=	10;

	var	myWin				=	window.open( url, name, 'width=' + widthWindow + ',height=' + heightWindow + ',screenX=' + screenX + ',screenY=' + screenY + ',scrollbars=yes,locationbar=no,menubar=yes,resizable=yes,status=no' );
	myWin.focus();

}



/**
 *	Zeigt das Fenster mit der übergebenen Url (Maschinen-Details) an.
 *
 *	id - eine pro Maschine eindeutige ID. Damit sind unterschiedliche Fensternamen
 *			möglich aber zugleich eindeutig pro Maschine.
 */
function openWindowMachineDetails( url, id ) {

	var winName				=	windowNamePrefix + 'window_machine_' + id;

	openWindowGeneral( url, winName );

}


/**
 *	Zeigt das Fenster mit der übergebenen Url (Ersatzteil-Details) an.
 *
 *	id - eine pro Ersatzteil eindeutige ID. Damit sind unterschiedliche Fensternamen
 *			möglich aber zugleich eindeutig pro Ersatzteil.
 */
function openWindowSparepartDetails( url, id ) {

	var winName				=	windowNamePrefix + 'window_sparepart_' + id;

	openWindowGeneral( url, winName );

}


/**
 *	Fenster zur Durchführung der Anfrage nach Infos zu einer Maschine
 */
function openWindowReqInfMachine( url, id ) {

	var winName				=	windowNamePrefix + 'window_reginf_machine_' + id;

	openWindowGeneral( url, winName );

}


/**
 *	Fenster zur Durchführung der Anfrage nach Infos zu einem Ersatzteil
 */
function openWindowReqInfSparepart( url, id ) {

	var winName				=	windowNamePrefix + 'window_reginf_sparepart_' + id;

	openWindowGeneral( url, winName );

}


/**
 *	Fenster zur Durchführung der Anwort auf eine Suchanfrage.
 */
function openWindowReqInfEnquiry( url, id ) {

	var winName				=	windowNamePrefix + 'window_reginf_enquiry_' + id;

	openWindowGeneral( url, winName );

}


/**
 *	Fenster zur Durchführung der Anfrage/Suche öffnen.
 */
function openWindowReqInfRequest( url ) {

	var winName				=	windowNamePrefix + 'window_reginf_request';

	openWindowGeneral( url, winName );

}


/**
 *	Wird während dem Laden der Details-Seite aufgerufen und skaliert alle Bilder ausser
 *	dem ersten auf Vorschau-Grösse
 *
 *	elementIDBase - Basis für den Zugriff auf die Bildelement. Nummer beginnend bei
 *					1 bis imagesCount wird angehängt.
 *
 *	imagesCount - die Anzahl der Bilder
 *
 *	widthThumb - die Breite für die Thumbs-Version
 */
function detailsSetupImages( elementIDBase, imagesCount, widthThumb ) {

	if ( imagesCount == 0  ||  !document.getElementById ) {
		return;
	}

	var	isFirst				=	true;

	//	global aktuell groß angezeigten merken

	g_detailsCurrentImage	=	-1;
	g_detailsElementBase	=	elementIDBase;
	g_detailsWidthThumb		=	widthThumb;


	for ( number = 1; number <= imagesCount; number++ ) {
		var elementID			=	elementIDBase + number;
		var objImage			=	document.getElementById( elementID );
		if ( objImage ) {

			//	Die Bilder sind hier noch nicht geladen. Aber die Maße sind
			//	per Attribut gesetzt!

			objImage.width_org		=	objImage.width;
			objImage.height_org		=	objImage.height;

// Merke:	Ob geladen ist, sagt die .complete-Eigenschaft

			if ( isFirst ) {
				g_detailsCurrentImage	=	number;
				isFirst					=	false;
			}
			else {
				detailsScale2Thumb( objImage );
			}
		}
	}

}

/**
 *	Skaliert das übergebene Bild-Objekt auf halbe Originalgröße
 */
function detailsScale2Thumb( objImage ) {
	objImage.width			=	g_detailsWidthThumb;
	objImage.height			=	objImage.height_org * g_detailsWidthThumb / objImage.width_org;
}


/**
 *	Wird aufgerufen, um das Bild mit der übergebenen Nummer als aktuelles
 *	(wird grösser angezeigt) auszuwählen.
 */
function detailsSwitchActiveImage( number ) {

	if ( !document.getElementById ) {
		return;
	}

	if ( number != g_detailsCurrentImage ) {

		//	Das aktuell grosse klein machen

		if ( g_detailsCurrentImage != -1 ) {

			var elementID			=	g_detailsElementBase + g_detailsCurrentImage;
			var objImage			=	document.getElementById( elementID );
			if ( objImage ) {
				detailsScale2Thumb( objImage );
			}
		}


		//	Das neue aktuelle grosse machen

		var elementID			=	g_detailsElementBase + number;
		var objImage			=	document.getElementById( elementID );
		if ( objImage ) {
			objImage.width			=	objImage.width_org;
			objImage.height			=	objImage.height_org;
		}

		g_detailsCurrentImage	=	number;

	}

}

/**
 *	Wird aufgerufen wenn der Benutzer in das Such-Feld in der Kopfzeile
 *	klickt.
 *
 *	Beim ersten Aufruf wird der enthaltende Text gelöscht.
 */
function onClickSearchFormHead( field ) {
	if ( field.value == field.alt ) {
		field.value		=	'';
	}
}


/**
 *	Wird aufgerufen wenn der Benutzer in das Such-Feld in der Kopfzeile
 *	verläßt.
 *
 *	Ist das Feld leer, so wird aus dem alt der Original-Text
 *	rekonstruiert.
 */
function onBlurSearchFormHead( field ) {
	if ( field.value ==  '' ) {
		field.value		=	field.alt;
	}
}

/**
 *	Wird aufgerufen wenn der Benutzer in das Such-Feld in der Suche
 *	drückt.
 *
 *	Beim ersten Aufruf wird der enthaltende Text gelöscht.
 */
function onClickSearchFormSearch( field ) {
	if ( field.value == field.alt ) {
		field.value		=	'';
	}
}


/**
 *	Wird aufgerufen wenn der Benutzer in das Such-Feld in der Suche
 *	verläßt.
 *
 *	Ist das Feld leer, so wird aus dem alt der Original-Text
 *	rekonstruiert.
 */
function onBlurSearchFormSearch( field ) {
	if ( field.value ==  '' ) {
		field.value		=	field.alt;
	}
}

