/* AJAX Funktionalität
 * Authors: Timon Rapp <timon@zaeda.net> 
 * Created: 2007/07/12
 */

//Benötigte Variablen
var ajax_http_request = false;	//Objekt für die HTML Antwort
var ajax_http_request_cart = false;
var ajax_zieldiv='';			//ID der DIV die mit den ankommenden Daten gefüllt werden soll
var ajax_statusdiv='';			//ID des CONTAINERS der das Ladebild als Hintergrund bekommen soll
var ajax_center=false;

/**	ajaxMakeRequest(url,ziel,status,params) 
 *	Öffnet eine AJAX-Verbindung
 *  Parameter:
 *  - url 		Text der angezeigt werden soll
 *  - ziel		ID der DIV in welche die zurückkommenden Daten gespeichert werden sollen
 *  - status	ID der DIV in der das Statusbild als Hintergrund angezeigt werden soll
 *  - params 	Parameter die an das PHP-Script per POST übergeben werden sollen
 */


function ajaxMakeRequest(url,ziel,status,params) 
{

	//if(ajax_http_request)
	//console.log(ajax_http_request.readyState);
	var rand_val = Math.random();
	url = url + '&rand=' + rand_val;
	
	if(ajax_http_request && ajax_http_request.readyState < 4)
	{
		//console.log("drin-" + url);
		if(url=="servicesuchereport.php" || url=="poller.php")
		{
			ajax_http_request.abort();
			ajax_http_request = false;
		}
		else
		{						
			window.setTimeout("ajaxMakeRequest('"+url+"','"+ziel+"','"+status+"','"+params+"')",100);
			return;
		}
	}
	
	//ZielID nicht übergeben?
	if(typeof(ziel)=="undefined")
	ziel = "ajaxausgabe";			//Falls Ja, Standardwert setzen
	
	//Status ID nicht übergeben?
	if(typeof(status)=="undefined")
	status = "ajaxstatus";			//Falls Ja, Standardwert setzen
	
	//Globale Variablen setzen
	ajax_zieldiv = ziel;
	ajax_statusdiv = status;
	
	//Wenn eine Status ID übergeben wurde...
	if(ajax_statusdiv != "nostatus")
	document.getElementById(ajax_statusdiv).style.backgroundImage = 'url(/images/processing_black_sm.gif)'; //... Ladebild anzeigen

	//AJAX-Objekte öffnen für Mozilla...
	if (window.XMLHttpRequest) 
		ajax_http_request = new XMLHttpRequest();
	//...oder Internet Explorer
	else if (window.ActiveXObject) 
    	ajax_http_request = new ActiveXObject("Microsoft.XMLHTTP");


	//Methode angeben, welche die ankommenen Daten empfängt
	ajax_http_request.onreadystatechange = ajaxGetAnswer;
	//Anfrage an das Zielscript stellen
	ajax_http_request.open('GET', url, true);
	//Header der Anfrage setzen
	ajax_http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	//Zu übergebende POST-Parameter senden
	ajax_http_request.send(params);
}

//function called 2 handle cart positions

function ajaxMakeRequestCart(url,ziel,status,params,user_id) 
{
	//if(ajax_http_request_cart)
	//console.log(ajax_http_request_cart.readyState);
	shop_user_id = user_id;
	
	var rand_val = Math.random();
	url = url + '&rand=' + rand_val;
	
	if(ajax_http_request_cart && ajax_http_request_cart.readyState < 4)
	{
		//console.log("drin-" + url);
		if(url=="servicesuchereport.php" || url=="poller.php")
		{
			ajax_http_request_cart.abort();
			ajax_http_request_cart = false;
		}
		else
		{						
			window.setTimeout("ajaxMakeRequest('"+url+"','"+ziel+"','"+status+"','"+params+"')",100);
			return;
		}
	}
	
	//ZielID nicht übergeben?
	if(typeof(ziel)=="undefined")
	ziel = "ajaxausgabe";			//Falls Ja, Standardwert setzen
	
	//Status ID nicht übergeben?
	if(typeof(status)=="undefined")
	status = "ajaxstatus";			//Falls Ja, Standardwert setzen
	
	//Globale Variablen setzen
	ajax_zieldiv = ziel;
	ajax_statusdiv = status;
	
	//Wenn eine Status ID übergeben wurde...
	//if(ajax_statusdiv != "nostatus")
	//document.getElementById(ajax_statusdiv).style.backgroundImage = 'url(/images/processing_black_sm.gif)'; //... Ladebild anzeigen

	//AJAX-Objekte öffnen für Mozilla...
	if (window.XMLHttpRequest) 
		ajax_http_request_cart = new XMLHttpRequest();
	//...oder Internet Explorer
	else if (window.ActiveXObject) 
    	ajax_http_request_cart = new ActiveXObject("Microsoft.XMLHTTP");


	//Methode angeben, welche die ankommenen Daten empfängt
	ajax_http_request_cart.onreadystatechange = ajaxHandleCartSumUpdate;
	//Anfrage an das Zielscript stellen
	ajax_http_request_cart.open('GET', url, true);
	//Header der Anfrage setzen
	ajax_http_request_cart.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	//Zu übergebende POST-Parameter senden
	ajax_http_request_cart.send(params);
}

/**	ajaxGetAnswer()
 *	Wird automatisch aufgerufen wenn neue Daten ankommen.
 */
function ajaxGetAnswer() 
{
	//console.log(": "+ajax_http_request.status+" | " + ajax_http_request.readyState);
	//console.log();
	try
	{
		if (ajax_http_request.readyState == 4) 					//Wenn Übertragung abgeschlossen...		
		{
			if (ajax_http_request.status == 200 || ajax_http_request.status == 0){ 	//... und kein Fehler auftrat...
				ajaxparseHTML(ajax_http_request.responseText);	//... Daten verarbeiten		
				document.getElementById(ajax_zieldiv).className ='processed';}		
			else
				ajaxparseHTML("Error! Status: "+ajax_http_request.status);
		}
	}
	catch(e)
	{
			//ajaxparseHTML(ajax_http_request.responseText);	//... Daten verarbeiten				
			
	}
	//	else 	
			//alert('Der Aufruf per Ajax hat nicht funktioniert! Fehler.');	
}

function ajaxHandleCartSumUpdate(user_id) 
{
	
	//console.log(": "+ajax_http_request.status+" | " + ajax_http_request.readyState);
	//console.log();
	try
	{
		var rand_val = Math.random();
		url_add = '&rand=' + rand_val;
		
		//alert(ajax_http_request_cart.readyState);
		if (ajax_http_request_cart.readyState == 4) 					//Wenn Übertragung abgeschlossen...		
		{
			if (ajax_http_request_cart.status == 200 || ajax_http_request_cart.status == 0){ 	//... und kein Fehler auftrat...
				//ajaxparseHTML(ajax_http_request.responseText);	//... Daten verarbeiten		
				ajaxMakeRequest('/ersatzteile/sys/cart/get_CartSumTotal.cfm?user_id='+shop_user_id + url_add,'CARTTOTALSUM','STATUS');//+user_id
				document.getElementById(ajax_zieldiv).className ='processed';}		
			else
				ajaxparseHTML("Error! Status: "+ajax_http_request.status);
		}
	}
	catch(e)
	{
			//ajaxparseHTML(ajax_http_request.responseText);	//... Daten verarbeiten				
			
	}
	//	else 	
			//alert('Der Aufruf per Ajax hat nicht funktioniert! Fehler.');	
}

  
/**	ajaxparseHTML(htmldoc)
 *	Fügt die angekommenen HTML Daten in die Seite ein. Gespeichert werden die Daten
 *  in die bereits definierte ajax_zieldiv
 *  Parameter:
 *  - htmldoc Text der angezeigt werden soll
 */
function ajaxparseHTML(htmldoc) 
{ 		

		//Wenn eine StatusID übergeben wurde...
		if(ajax_statusdiv != "nostatus")
		//... Hintergrundbild löschen
		document.getElementById(ajax_statusdiv).style.backgroundImage = "";	
		//Zieldiv mit empfangenen Daten füllen
		document.getElementById(ajax_zieldiv).innerHTML=htmldoc;

}