//allgemein gueltig
var ajax_ignore_customers = new Array('ght.at');

var main_form;
var req;

// Copyright (c) 2004 Michael Foster, Licensed LGPL (gnu.org)
function xAddEventListener(e,eventType,eventListener) {
	if (!e) {return 'Fehler kein Objekt uebergeben';}
	eventType=eventType.toLowerCase();
	var eh='e.on'+eventType+'=eventListener';
	if(e.addEventListener) e.addEventListener(eventType,eventListener,null);
	else if(e.attachEvent) e.attachEvent('on'+eventType,eventListener);
	else eval(eh);
}

function getNewHttpRequest() {
	var req;
	if (window.XMLHttpRequest) {
		req = new XMLHttpRequest;
	} else if (window.ActiveXObject) { // ... ob er das Objekt per ActiveX implementiert
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (e) {
		}
	}
	return req;
}

function init_ajax() {
	var show=true;
        
	if (document.form){ 
        
		if (document.form.customer && in_array(document.form.customer.value,ajax_ignore_customers)){
            show=false;
        }
        
    }
    
	if (show) {	
		if (!getNewHttpRequest())
			show = false;
	}
	if (show) {
		//ausblenden
		var berechnen = document.getElementById('berechnen_area');
		if (berechnen) {
			berechnen.style.display = 'none';
		}

		//besser waer ein zugriff auf eine id
		main_form = document.form;

		/*     if (!main_form) {alert('Form nicht gefunden');return false;}
		       if (!ajax_id){alert('Keine Ajax-id vorhanden');}*/
		var types = {'select-one': 'Change', 'checkbox': 'Click', 'radio': 'Click', 'text': 'KeyUp'};
		var ajax_ignore_type = new Array('hidden','image','submit','button');
        for (i = 0; i < main_form.length; i++)
			if (!in_array(main_form[i].type, ajax_ignore_type) && !in_array(main_form[i].name, ajax_ignore_elem) && types[main_form[i].type])
					xAddEventListener(main_form[i], types[main_form[i].type], ajaxCalc);
	}
}

function ajaxCalc() {
	var f = main_form;

	var requeststring = 'ajax_id=' + ajax_id;
	for(var i = 0; i < f.length; i++)
		if (f[i].tagName.toLowerCase() != 'fieldset' && (f[i].type != 'checkbox' && f[i].type != 'radio' || f[i].checked))
			requeststring += '&' + f[i].name + '=' + encodeURIComponent(f[i].value);

	req = getNewHttpRequest();
	url='/rechner/ajax/index.php';
	req.onreadystatechange = processReqChange;
	req.open("POST", url, true);
	req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	req.send(requeststring);
}

function processReqChange() {
	
    if (req && req.readyState == 4 && req.status == 200) {
		if (!req.responseXML) {
			//	 alert('Fehler in ajax rueckgabe'+req.responseText);
		} 
		var erg = req.responseXML.getElementsByTagName("ergebnis");
        //window.prompt('',req.responseText);
        window.status=erg.length;
        if (erg.length == 1) {
			var v = erg[0].getElementsByTagName("var");
            
			for(var i = 0; i < v.length; i++){
				var obj = document.getElementById('erg_' + v[i].getAttribute('name'));
				if (!obj)
					continue;

				if (v[i].getAttribute('name') == 'pic') {
					obj.src = v[i].getAttribute('val');
                    
					window.status = v[i].getAttribute('val')
				} else {
					obj.innerHTML = v[i].getAttribute('val');
				}
			}
		}
	}
}

function in_array(s, arr) {
	if (typeof(arr) != 'object') {
		alert('fehler in der funktion in_array, parameter arr kein Objekt'); 
		return false;
	}
	for(var i = 0; i < arr.length; i++) {
		if (arr[i] == s)
			return true;
	}
	return false;
}

