
/*****************************************************************************************************
**
** BEISPIEL - WRITE INPUT V1.1
**
** Dateiname:			write_input_v1_1.js
** Letzte Änderung:		10.10.2003
** Programmierer:		Heiko Pfefferkorn (o2cell.com) (work: i-fabrik.de)
**
*****************************************************************************************************
**
** INFOMATION
**
** Diese Beispiel verwenden wir auf unserer Seite "www.ifabrik.de".
** In verschiedenen Browsern sollte das 'Suchfeld' und das 'Kundenloginfeld', im linken Bereich
** unserer Seite, immer möglichst gleich gross in dargestellt werden. Dazu kam noch das nur ein
** begrenzter Bereich für die Formularfelder zur Verfügung stand bzw. steht.
** 
** Deshalb mussten wir die Formularfelder per Javascript in die Seite schreiben lassen, mit
** Unterstützung des Browsercheck V1.1.
**
** COPYRIGHT
**
** Das Copyright liegt bei Heiko Pfefferkorn (o2cell.com) (work: i-fabrik.de).
** Eine Änderung bzw. Anpassung des Quellcodes darf erfolgen, jedoch darf der Quellcode nicht
** kommerziell genutzt werden. Das bedeutet, Sie können ihn einbauen, nutzen, ev. auch anpassen
** aber nicht verkaufen oder gegen eine Gebühr anbieten.
**
****************************************************************************************************/


/* Formularfeldgrössen in verschiedenen Browsern und Systemen (Win,Mac) 
-- Diese Definitionen betreffen zur Zeit nur einfache '<input type="text">'
-- '<input type="password">' Feldtypen, also simple Eingabefelder
--------------------------------------------------------------------------*/
var inputWidth = new Array();			// Windows System
inputWidth["w_vIsMoz"]		= "16";
inputWidth["w_vIsMoz1_0"]	= "16";
inputWidth["w_vIsMoz1_1"]	= "16";
inputWidth["w_vIsMoz1_2"]	= "16";
inputWidth["w_vIsMoz1_3"]	= "17";
inputWidth["w_vIsMoz1_4"]	= "18";
inputWidth["w_vIsMoz1_5"]	= "18";
inputWidth["w_vIsMoz1_6"]	= "18";

inputWidth["w_vIsMsi"]		= "15";
inputWidth["w_vIsMsi3"]		= "15";
inputWidth["w_vIsMsi4"]		= "15";
inputWidth["w_vIsMsi5"]		= "17";
inputWidth["w_vIsMsi6"]		= "18";

inputWidth["w_vIsNav"]		= "8";
inputWidth["w_vIsNav2"]		= "8";
inputWidth["w_vIsNav3"]		= "8";
inputWidth["w_vIsNav4"]		= "8";
inputWidth["w_vIsNav4x"]	= "8";
inputWidth["w_vIsNav6"]		= "11";
inputWidth["w_vIsNav7"]		= "11";

inputWidth["w_vIsOpe"]		= "16";
inputWidth["w_vIsOpe2"]		= "16";
inputWidth["w_vIsOpe3"]		= "16";
inputWidth["w_vIsOpe4"]		= "17";
inputWidth["w_vIsOpe5"]		= "17";
inputWidth["w_vIsOpe6"]		= "17";

inputWidth["m_vIsMoz"]		= "16";		// Macintosh System
inputWidth["m_vIsMoz1_0"]	= "16";
inputWidth["m_vIsMoz1_1"]	= "16";
inputWidth["m_vIsMoz1_2"]	= "16";
inputWidth["m_vIsMoz1_3"]	= "17";
inputWidth["m_vIsMoz1_4"]	= "18";
inputWidth["m_vIsMoz1_5"]	= "18";
inputWidth["m_vIsMoz1_6"]	= "18";

inputWidth["m_vIsMsi"]		= "15";
inputWidth["m_vIsMsi3"]		= "15";
inputWidth["m_vIsMsi4"]		= "15";
inputWidth["m_vIsMsi5"]		= "17";
inputWidth["m_vIsMsi6"]		= "18";

inputWidth["m_vIsNav"]		= "8";
inputWidth["m_vIsNav2"]		= "8";
inputWidth["m_vIsNav3"]		= "8";
inputWidth["m_vIsNav4"]		= "8";
inputWidth["m_vIsNav4x"]	= "8";
inputWidth["m_vIsNav6"]		= "11";
inputWidth["m_vIsNav7"]		= "11";

inputWidth["m_vIsOpe"]		= "16";
inputWidth["m_vIsOpe2"]		= "16";
inputWidth["m_vIsOpe3"]		= "16";
inputWidth["m_vIsOpe4"]		= "17";
inputWidth["m_vIsOpe5"]		= "17";
inputWidth["m_vIsOpe6"]		= "17";


/* Mit dieser Funktion und mit Abfrage der erzeugten Daten des Browsercheck V1
-- generieren wird die o.g. Felder in unserer Seite
--
-- Aufruf:
-- writeInput(fieldTyp,fieldName,fieldValue,fieldCss,fieldDiff)
--
-- fieldTyp:	'text' oder 'password'
-- fieldName:	der Bezeichner des Feldes
-- fieldValue:	Inhalt des Feldes (kann auch leer sein :-) )
-- fieldCss:	Ein CSS-Style des Feldes (nur den Stylenamen übergeben) (kann auch leer sein)
-- fieldDiff:	ist eine kleine kurze Notlösung um auch etwas kleinere Felder zu erzeugen,
--				nicht immer nur gleich Grosse. Der Wert in 'fieldDiff' wird einfach vom
--				ausgelesenem Wert in 'inputWidth[]' abgezogen.
--				(kann auch leer sein) (dies war nur ein vorläufiger Notbehelf)
--
-- Beispiel-Aufruf:
-- writeInput("text","meinname","mein Value","bstyle","2")
--------------------------------------------------------------------------------------------*/
function writeInput(fieldTyp,fieldName,fieldValue,fieldCss,fieldDiff) {

	/* Frage nach System (wurde im BrowserCheck V1 gesetzt)
	-----------------------------------------------------*/
	if (sysWin) s = "w_";
	if (sysMac) s = "m_";

	/* Frage nach welcher Browser es ist (wurde im BrowserCheck V1 gesetzt)
	-- 'browser[]' ist das Array mit den Browserversion auf die geprüft wird
	------------------------------------------------------------------------*/
	for(key in browser) {
	 	if (browser[key]) { 					// ist der Inhalt im aktuellen Feld in 'browser[]' wahr
			fieldSize = inputWidth[s + key]; 	// lies die Feldgroesse 'inputWidth[system+browserversion]'
		}										// aus unserem oben definiertem Array 'inputWidth[]'
	}


	/* Zusammensetzen des Input-Feldes
	----------------------------------*/
	if (fieldTyp == "" && fieldName == "") {
		alert ('Sie muessen einen Feldtyp und einen Feldnamen angeben');
	} else {
		actField = '<input type="'+fieldTyp+'" name="'+fieldName+'"';

		if (fieldValue != "") {		// existiert ein Value
			fV = ' value="'+fieldValue+'"';
			actField = actField + fV;
		}

		/* Frage nach Browser (denn MsIe und Mozilla können die Styles bei einem Formularfeld
		-- korrekt darstellen), demzufolge schreibe die 'Klasse' mit
		-- Wer will kann die Browser-Abfrage auch anpassen ('bOpe' und 'bNav' sind noch da)
		------------------------------------------------------------------------------------*/
		if (bMsi && bMoz) {
			if (fieldCss != "") {
				fC = ' class="'+fieldCss+'"';
				actField = actField + fC;
			}
		}

		fS = fieldSize - fieldDiff; 	// existiert 'fieldDiff' dann ziehe den Wert von 'fieldSize' ab
		actField = actField + ' size="'+fS+'">';
	}

	document.write(actField);	// gib Feld - String aus

}
