/* 	hash.js

	Copyright 2001 David Bothe (wildpferd.de)
	
*/

/*
	Highlite von Feldern
*/

/*
	OK, ab hier der Witz ... Warum die global und Timeout-Geschichte? Weiss ich auch nicht, aber versuchen Sie es mal ohne ...
*/

var globalFeld1 = 0;
var globalFeld2 = 0;

function highlite(_feld) {
	globalFeld1 = _feld;
	setTimeout("globalFeld1.className = 'formfelderHighlite';", 50);
}
function lowlite(_feld) {
	globalFeld2 = _feld;
	setTimeout("globalFeld2.className = 'formfelder';", 50);
}

/*
	Formulardaten cachen
*/

// Hash anlegen

var stammdaten = hash();

function getFormData(_form) {
	// Generell wird alles übernommen, Felder müssen explizit ausgeschlossen werden!
	for (var _i=0; _i < _form.length; _i++) if (_form.elements[_i].name != "Warmwasser" && _form.elements[_i].name != "Gas-Nutzung" && _form.elements[_i].name != "Einzugsermaechtigung-fuer-die-Schlussrechnung" && _form.elements[_i].name != "Zaehlername-1" && _form.elements[_i].name != "Zaehlername-2" && _form.elements[_i].name != "Zaehlername-3" && _form.elements[_i].name != "Bitte_uebersenden_Sie_mir" && _form.elements[_i].name != "" && _form.elements[_i].name != "submit" && _form.elements[_i].type != "hidden") _form.elements[_i].value = (self.stammdaten.getValue(_form.elements[_i].name) != null) ? self.stammdaten.getValue(_form.elements[_i].name) : "";
}

function setFormData(_form) {
	for (var _i=0; _i < _form.length; _i++) self.stammdaten.setValue(_form.elements[_i].name, _form.elements[_i].value);
}

/*
	Hash-Emulation
*/

function getValue(_key) {
	var _hash = this;
	for (var _i=0; _i < _hash.length; _i++) {
		if (_hash[_i].key && _hash[_i].key == _key) return _hash[_i].value;
	}
	return null;
}

function setValue(_key, _value) {
	var _hash = this;
	// First we check, if the key already exists ... 
	for (var _i=0; _i < _hash.length; _i++) {
		if (_hash[_i].key && _hash[_i].key == _key) {
			// Key already exists!
			_hash[_i].value = _value;
			// so, then we are finished!
			return;
		}
	}	
	// If we arrive here, the key does not exist yet. 
	_hash[_hash.length] = new setNewValue(_key, _value);
}

function setNewValue(_key, _value) {
	this.key = _key;
	this.value = _value;
}

function hash() {
	var _hash = new Array;
	_hash.getValue = getValue;
	_hash.setValue = setValue;
	return _hash;
}