/**
 *  0 = uninitialized
 *  1 = loading
 *  2 = loaded
 *  3 = interactiv
 *  4 = status
 *   
 *  Umgebungsvariablen definieren ...
 *  ---------------------------------  
*/

// Die Bibliothek
var requestHostLibrary = '/ajax.php';
// Der Request
var request = false;
// Der Query-String
var requestQueryString = false;
// Das Zielobjekt
var htmlElement = false;

// Ajax initialisieren
function initializeAjax( HostUri ) {
  requestHostUri = HostUri;
  return true;
}

// Request senden
function setAjaxRequest() {
	/**
	 * Erzeugt einen Ajax Request und führt ihn aus ...
	 * ------------------------------------------------
	*/
  // Request erzeugen
	if (window.XMLHttpRequest) {
		request = new XMLHttpRequest(); // Mozilla, Safari, Opera
	} else if (window.ActiveXObject) {
		try {
			request = new ActiveXObject('Msxml2.XMLHTTP'); // IE 5
		} catch (e) {
			try {
				request = new ActiveXObject('Microsoft.XMLHTTP'); // IE 6
			} catch (e) {}
		}
	}

	// überprüfen, ob Request erzeugt wurde
	if ( request ) {
    // Gültige URI an Zieladresse
		var url = requestHostLibrary;
		// Request öffnen -> Verbindungsanfrage an Zieladresse
		request.open( 'get', url, true );
		// Request Header senden
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    // Request senden -> 'action=ein_wert, action2=noch_ein_wert'
		request.send( requestQueryString );
    // Waiting ...
    document.getElementById( htmlElement ).innerHTML = '<p align="center"><img src="/templates/snackservant/images/ajax_laden.gif" alt="" title="Bitte warten ..." /></p>';
    // Request auswerten -> Funktionsaufruf nach abgeschlossenem Datenempfang
    request.onreadystatechange = interpretAjaxRequest;
	} else {
    alert( "Kann keine XMLHTTP-Instanz erzeugen" );
		return false;
	}
} // end
     
// Request auswerten
function interpretAjaxRequest() {
	  
  switch ( request.readyState ) {
		// wenn der readyState 4 und der request.status 200 ist, dann ist alles korrekt gelaufen
		case 1 :
		  // alert( "Warte auf Antwort ..." );
		  document.getElementById( htmlElement ).innerHTML = 'Bitte warten ...';
      break;
    case 4 :
			if (request.status != 200) {
				alert( "Der Request wurde abgeschlossen, ist aber nicht OK\nFehler:" + request.status );
			} else {
        var content = request.responseText;
				// den Inhalt des Requests in das <div> schreiben
				document.getElementById( htmlElement ).innerHTML = content;
			}
			break;
		default:
			break;
	}
} // end

/* -------------------------------------------------------------------------- */

// Request: Shop Artikel-Bezeichnung laden
function ajaxGetVertragshaendler( Plz, Umkreis ) {
  requestQueryString = 'action=haendler&id=2&plz=' + Plz + '&umkreis=' + Umkreis;
  htmlElement = Zielelement;
  setAjaxRequest();
  return ;
} // end

// Request: Shop Artikel -> Zutaten / Optionen laden
/**
function ajaxShopArtikelOptionen( Artikelnummer, Zielelement ) {
  requestQueryString = 'action=get_shop_artikel_optionen&artikelnummer=' + Artikelnummer;
  htmlElement = Zielelement;
  setAjaxRequest();
  return ;
}
**/

// Request: Shop Warenkorb -> neue Position / aktualisieren --> wird derzeit ausserhalb verwendet !!
/**
function ajaxKassenbonNeuePosition( Artikelnummer, Menge, Preis, Optionen, Zielelement ) {
  requestQueryString = 'action=get_kassenbon_neuer_artikel&artikelnummer=' + Artikelnummer + '&menge=' + Menge + '&preis=' + Preis + '&optionen=' + Optionen;
  htmlElement = Zielelement;
  setAjaxRequest();
  if ( request.readyState )
    artikelKonfigurator.Hide();
  return ;
}
**/
