var V_bolWork = true;
var http_request = false;
var V_obj_Target = null;
var V_objAjaxPic = null;



// INIT -------------------------------------------------------------------------------------------------------------
window.onload = function()
{
	V_objAjaxPic = document.createElement('IMG');													// Bild für Ajax erstellen
	V_objAjaxPic.style.cssText = 'position:absolute; display:none;';			// Bild nicht anzeigen

	document.body.appendChild(V_objAjaxPic);															// Bild dem Dokument hinzufügen

	ChechPerm();																													// cart aktualisieren falls Backbutton

 	// V_objAjaxPic.style.display = 'none'; -> ausblenden
 	// -> einblenden
 	// V_objAjaxPic.src = 'pictures/system/js_ind.gif';								???									// Kopie erstellen
  // V_objAjaxPic.style.display = 'block';															// Anzeigen [block] inline
  // V_objAjaxPic.style.position ='absolute';														// Positionieren
  // V_objAjaxPic.style.zIndex ='500';																	// Objekt nach vorne holen
}

// USER-REACTIONS ---------------------------------------------------------------------------------------------------
function fnc_changAct(V_strAction)
{
	if (V_bolWork)
	{
		//alert (V_strAction);
		V_frm =document.getElementById('frmHidden');
		V_frm.act.value = V_strAction;
		V_usedlang = V_frm.jslan.value
		V_frm.method = "POST";
		if (V_strAction == 'showProdList')
		{
			V_frm.action  ="list.php?lan=" + V_usedlang;
		}
				if (V_strAction == 'showCart')
		{
			V_frm.action  ="cart.php?lan=" + V_usedlang;
		}

		V_frm.submit();
	}
}

function fnc_changeLang(V_strLang)
{
	if (V_bolWork)
	{
		//alert (V_strLang);
		V_frm =document.getElementById('frmHidden');
		V_frm.act.value = 'changeLang';
		//V_frm.lan.value = V_strLang;
		V_frm.action  ='list.php?lan=' + V_strLang;
		V_frm.method = "POST";
		V_frm.submit();
	}
}

function fnc_changeZone()
{
	if (V_bolWork)
	{
		V_frm =document.getElementById('frmHidden');
		url = V_frm.action;
		V_frmRerion = document.getElementById('frmZone');
		V_strRegion = V_frmRerion.zone.value;
		fnc_ajax(url,'fnc_Change_Zone','chngRegion',V_strRegion);
	}
}

function fnc_Buy(){
	if (V_bolWork)
	{
		//alert (V_strLang);
		V_frm =document.getElementById('frmHidden');
		V_frm.act.value = 'p0';
		V_frm.action ="https://recdi8-shop.com/pas1.php";
		V_frm.method = "POST";
		V_frm.submit();
	}
}

function fnc_DetChange(obj_HideElement, obj_ShowElement)  // Wechselt zwischen Detail-Ansichten eines Produktes
{
	document.getElementById(obj_HideElement).style.display = 'none';
	document.getElementById(obj_HideElement).style.visibility= 'hidden';

	document.getElementById(obj_ShowElement).style.display = 'block';
	document.getElementById(obj_ShowElement).style.visibility= 'visible';
}

function fnc_CartDelProd(prod_id)  												// Löscht Produkt aus dem WK
{
	if (V_bolWork)
	{
		V_frm =document.getElementById('frmHidden');
		url = V_frm.action;
		fnc_ajax(url,'fnc_prod_out','delProd',prod_id);
	}
}

function fnc_Actualizice_Cart()  												// Löscht Produkt aus dem WK
{
	if (V_bolWork)
	{
		V_frm =document.getElementById('frmHidden');
		url = V_frm.action;
		fnc_ajax(url,'fnc_prod_out','getCartContent',null);
	}
}

function fnc_showDet(prod_id)  																// Wechselt zur Detail Ansicht
{
	if (V_bolWork)
	{
		V_frm =document.getElementById('frmHidden');
		V_frm.act.value = "showDet";
		V_usedlang = V_frm.jslan.value
		//V_frm.det.value = prod_id;
		V_frm.method = "POST";
		V_frm.action  ='detail.php?det=' + prod_id + '&lan=' + V_usedlang;
		V_frm.submit();
	}
}

function fnc_InsProd(prod_id)  														// Legt Produkt in den WK
{
	if (V_bolWork)
	{
		V_frm =document.getElementById('frmHidden');
		url = V_frm.action;
		fnc_ajax(url,'fnc_prod_in','insProd',prod_id);
	}
}
//======================================================================================================================
// AJAX
//======================================================================================================================


    function fnc_ajax(url, V_strResponse_Handler, V_strAction, V_strTarget)
    {
				fnc_AjaxGoSettings();
        http_request = false;


        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            http_request = new XMLHttpRequest();
            if (http_request.overrideMimeType) {
                http_request.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) { // IE
            try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
                    http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!http_request) {
            alert('Ende :( Kann keine XMLHTTP-Instanz erzeugen');
            return false;
        }

        switch (V_strAction)
        {
        	case "insProd":
       			var str_Request = 					"act=" 						+ 'insProd';
       			str_Request = str_Request + "&prodid=" 					+ V_strTarget;
          break;

       		case "delProd":
       			var str_Request = 					"act=" 						+ 'delProd';
       			str_Request = str_Request + "&prodid=" 					+ V_strTarget;
          break;

          case "getCartContent":
       			var str_Request = 					"act=" 						+ 'getCartContent';
          break;

          case "chngRegion":
       			var str_Request = 					"act=" 						+ 'chngRegion';
       			str_Request = str_Request + "&reg=" 					+ V_strTarget;
          break;getTotal

          case "getTotal":
       			var str_Request = 					"act=" 						+ 'getTotal';
          break;

       		default:
        		alert('Keine Aktion für Ajax-Response definiert');
          break;
  			}

        switch (V_strResponse_Handler)
        {

        	case "fnc_prod_in": // Html wird mittels innerHtml direkt eingebunden
        		http_request.onreadystatechange = fnc_prod_in;
        	break;

        	case "fnc_prod_out": // Html wird mittels innerHtml direkt eingebunden
        		http_request.onreadystatechange = fnc_prod_out;
        	break;

        	case "fnc_Change_Zone": // Html wird mittels innerHtml direkt eingebunden
        		http_request.onreadystatechange = fnc_Change_Zone;
        	break;

        	case "fnc_GetTotal": // Html wird mittels innerHtml direkt eingebunden
        		http_request.onreadystatechange = fnc_GetTotal;
        	break;



        	case "fnc_innerHtml": // Html wird mittels innerHtml direkt eingebunden
        		http_request.onreadystatechange = fnc_innerHtml;
        	break;

					case "fnc_EvalInhalt": 		// Java-Script wird mittels Eval direkt ausgeführt			// Zur Zeit nicht im Einsatz !!!
        		http_request.onreadystatechange = fnc_EvalInhalt;
        	break;

        	case "fnc_EvalInhalt": 		// Java-Script wird mittels Eval direkt ausgeführt			// Zur Zeit nicht im Einsatz !!!
        		http_request.onreadystatechange = fnc_EvalInhalt;
        	break;

        	default:
        		alert('Kein Empfänger für Ajax-Response definiert');
          break;
        }

          // -- GET
        	//	http_request.open('GET', url + '?' + str_Request, true);
        	//	http_request.setRequestHeader(     'Content-Type',     'application/x-www-form-urlencoded;  charset=ISO-8859-1');

          // -- POST
          http_request.open('POST', url, true);
      		http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded;  charset=ISO-8859-1'); //("Content-type", "application/x-www-form-urlencoded");
      		http_request.setRequestHeader("Content-length", str_Request.length);
      		http_request.setRequestHeader("Connection", "close");
      		//http_request.send(str_Request);





        //alert (str_Request);
        http_request.send(str_Request);

        return true;
    }


function fnc_prod_in()
		{
			var V_strJavaText 		= fnc_AjaxResp();
			if (V_strJavaText)
			{
				//document.write(V_strJavaText);
				alert(unescape(V_strJavaText));
				fnc_AjaxRetSettings();
			}
		}


function fnc_prod_out()
		{
			var V_strJavaText 		= fnc_AjaxResp();
			if (V_strJavaText)
			{
				//document.write(V_strJavaText);
				//alert(V_strJavaText);	//-> innerHtml

				document.getElementById('ContentAll').innerHTML  = V_strJavaText;

				fnc_AjaxRetSettings();
			}
		}

function fnc_Change_Zone()
{
			var V_strJavaText 		= fnc_AjaxResp();
			if (V_strJavaText)
			{
				//document.write(V_strJavaText);
				//alert(V_strJavaText);	//-> innerHtml
				document.getElementById('RegPrice').innerHTML  = V_strJavaText;

				fnc_ajax(url,'fnc_GetTotal','getTotal',null);
			}
}

function fnc_GetTotal()
{
			var V_strJavaText 		= fnc_AjaxResp();
			if (V_strJavaText)
			{
				V_objTotTarget = document.getElementById('TotPrice')
				if (V_objTotTarget)
				{
					V_objTotTarget.innerHTML  = V_strJavaText;
				}
			}
			fnc_AjaxRetSettings();
}



function fnc_EvalInhalt() // Zur Zeit nicht im Einsatz
		{
			var V_strJavaText 		= fnc_AjaxResp();
			if (V_strJavaText)
			{
				alert(unescape(V_strJavaText));
				eval(V_strJavaText);
			}

			fnc_AjaxRetSettings();
		}

		function fnc_innerHtml()
		{
			var V_strCellContent 		= fnc_AjaxResp();
			if (V_strCellContent)
			{
				V_obj_Target.innerHTML=V_strCellContent;
			}

			fnc_AjaxRetSettings();
		}


    function fnc_AjaxResp()
    {

        if (http_request.readyState == 4)
        {
        	// alert (http_request.status);
        		switch (http_request.status)
        		{

            	case 200: // Fehlerfreie Verarbeitung -> Änderung anzeigen
            		//var obj_ActCell 				= document.getElementById(obj_FatherWillChange);	// zu veränderte Zelle
            	  //obj_ActCell.innerHTML=http_request.responseText;
            	  return http_request.responseText
            	  // alert (http_request.responseText);
            	break;

            	case 400: // Fehler fehlende Daten (GET)
            	  	alert(http_request.responseText);
            	  	fnc_AjaxRetSettings();
            	  	return false;
            	break;

            	case 500: // Fehler bei der Verarbeitung
            	  	alert(http_request.responseText);
            	  	fnc_AjaxRetSettings();
            	  	return false;
            	break;

            	case 501: // Fehler nicht unterstützte Funktion
            	  	alert(http_request.responseText);
            	  	fnc_AjaxRetSettings();
            	  	return false;
            	break;

            	default: // Fehler bei der Datenübertragung
            	    alert('Fehler bei der Datenübertragung, versuchen Sie es bitte erneut!');
            	    fnc_AjaxRetSettings();
            	    return false;
            	break;
            }
            // Aktive Objekte zurücksetzen
            // fnc_AjaxRetSettings();
        }

    }


function fnc_AjaxGoSettings()
{

		V_bolWork	= false;								// Eventverarbeitung  abschalten
		V_intYpos = window.innerHeight/2;
		V_intXpos = window.innerWidth/2;

		if (!V_intYpos)
		{
			V_intYpos = document.body.clientHeight /2;
			V_intXpos = document.body.clientWidth /2;
		}

		if (!V_intYpos)
		{
			V_intYpos = 200;

		}
		if (!V_intXpos)
		{
			V_intXpos = 200;
		}

		V_strYpos = V_intYpos + 'px';
		V_strXpos = V_intXpos + 'px';
		V_objAjaxPic.src = 'pictures/system/js_ind.gif';
  	V_objAjaxPic.style.display = 'block';
  	V_objAjaxPic.style.position ='absolute';
  	V_objAjaxPic.style.top = V_strYpos;
  	V_objAjaxPic.style.left = V_strXpos;
  	V_objAjaxPic.style.marginLeft ='';
  	V_objAjaxPic.style.marginRight ='auto';
  	V_objAjaxPic.style.zIndex ='500';

		// Bild einblenden

		// =================================================================================================
}

function fnc_AjaxRetSettings()
{
		V_bolWork	= true;							// Eventverarbeitung wieder zulassen
		V_objAjaxPic.style.display = 'none';
}