﻿
var SS2RequestUri = "http://"+window.location.host+"/phps/shop_ajax_singleshoe2.php";
//var SS2RequestUri = "http://shop.papillio.de/phps/shop_ajax_singleshoe2.php";


//--------------------------------
/*
*	AJAX Singleshoe2
*	Version 1.01  03.04.2008
*/  
//--------------------------------


var ajaxReq_SS2  = null;
var Debug_SS2    = true;

InitSS2();

// Init the search vars 
function InitSS2()
{
	//Our XmlHttpRequest object
	ajaxReq_SS2 = getXmlHttpRequestObjectSS2();
	if (!ajaxReq_SS2)
		alert('Init error 1');
}
//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObjectSS2()
{
	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) 
          {
          	
          }
        }
     }
     return(http_request);
}

function LoadSingleshoe2Data(a_nr,size_from,size_to)
{
	if (ajaxReq_SS2 && (ajaxReq_SS2.readyState==4 || ajaxReq_SS2.readyState==0)) 
	{
		ajaxReq_SS2.open("GET",SS2RequestUri + "?mode=1&art_nr="+a_nr+"&formSize=size_from"+"&toSize=size_to",true);
		ajaxReq_SS2.onreadystatechange = handleSearchRequestSS2; 
		ajaxReq_SS2.send(null);
	}		
}

function handleSearchRequestSS2() 
{
	var found_start = false;
	if (ajaxReq_SS2 && ajaxReq_SS2.readyState==4)
	{
		var str = ajaxReq_SS2.responseText.split("#LEX#");
		var size_count = 0;
		//alert(str);
		for(i=0; i < str.length - 1; i++) 
		{
			if (str[i].search(/<!--STOP_SEARCH_OUTPUT-->/)!=-1)
				found_start = false;
			var pattern = str[i].split("#=#");
			if (found_start==true)
			{
				if (pattern.length==2)  // 2 param
				{
				// alert(pattern[0] + "=" +pattern[1]);
					switch(trim(pattern[0]))
					{
						case "SS2_Html":
							SetInnnerHtml("SS2_Html",pattern[1],"block");
							break;
						case "SS2_TxTLieferbar":
							SS2_TxTLieferbar = pattern[1];
							break;
						case "SS2_TxTNichtLieferbar":
							SS2_TxTNichtLieferbar = pattern[1];
							break;
						case "SS2_TxTCountError":
							SS2_TxTCountError = pattern[1];
							break;
						case "SS2_TxTSizeError":
							SS2_TxTSizeError = pattern[1];
							break;
						case "SS2_TxTWidthError":
							SS2_TxTWidthError = pattern[1];
							break;
						case "SS2_SelectedSize":
							SS2_SelectedSize = pattern[1];;
							break;
						case "SS2_Currency":
							SS2_Currency = pattern[1];
							break;
						case "SS2_SizeCount":
							SS2_Size  = new Array(pattern[1]);
							break;
						case "SS2_Size":
							SS2_Size[size_count]    = new Array(5);
							var s = pattern[1].split("#;#");
							if (s.length!=7)
								    DebugMsg("handleSearchRequestSS2(...) Error SS2_Size count");
							for (n=0;n<s.length;n++)
								SS2_Size[size_count][n] = s[n];
							++size_count;
							break;
					}
				}
				else
					DebugMsg("handleSearchRequestSS2(...) pattern.length!=2" + str[i]);
			}
				
			if (str[i].search(/<!--START_SEARCH_OUTPUT-->/)!=-1)
				found_start = true;
		}

		ResetRadioWidth();
		ResetSizeBox();
		if (SS2_SelectedSize!=-1)
			OnClickSize(SS2_SelectedSize)

		//SS2_CheckVarsAndMsg();

//		SetInnnerHtml("SS2_DeliveryMsg",SS2_TxTSizeError +"<br />"+SS2_TxTWidthError,"block");
	//	SetInnnerHtml("SS2_PriceMsg","","block");

	}
}

function OnClickSize(size)
{
	SetInnnerHtml("SS2_DeliveryMsg","","none");
	SetInnnerHtml("SS2_PriceMsg","","block");
	element  = document.getElementById("SS2_Count");
	if (element)
		element.value = 1;
	
	ResetRadioWidth();
	ResetSizeBox();
	
	for (var i=0;i<SS2_Size.length;i++)
	{
		if (SS2_Size[i][0] == size)		
		{
			var element  = document.getElementById("formSize");
			if (element)
				element.value = size;
			else
			{
				alert("Error: formvar-> formSize nicht gefunden");
				return;
			}

			element  = document.getElementById("SS2_SelectedSize");
			if (element)
				element.value = SS2_Size[i][5];
//		element.innerHTML = SS2_Size[i][5];

			element  = document.getElementById("SS2_Size" + size);
			if (element)
				element.className = "selected";

			var width = SS2_Size[i][1].split("|");
			var anr   = SS2_Size[i][2].split("|");
			var price = SS2_Size[i][3].split("|");
			
			var checked = 0;
			if (width.length==1)
				checked = 1;
			
			for (var j=0;j<width.length;j++)
			{
//				DisplayRadioWidth(width[j],anr[j],price[j] +" "+ SS2_Currency,checked);
				DisplayRadioWidth(width[j],anr[j],price[j],checked);
				if (checked==1)
					OnClickWidth(width[j])
			}
			SS2_CheckVarsAndMsg();
	//		if (!checked)
	//			SetInnnerHtml("SS2_DeliveryMsg",SS2_TxTWidthError,"block");
			return;
		}
	}
	
	SS2_CheckVarsAndMsg();
}

function OnClickWidth(width_value)
{
	var element  = document.getElementById("formSize");
	if (element)
		size = element.value;
	else
	{
		alert("Error: formvar-> formSize nicht gefunden");
		return;
	}

	for (var i=0;i<SS2_Size.length;i++)
	{
		if (SS2_Size[i][0] == size)		
		{
			var width     = SS2_Size[i][1].split("|");
			var anr       = SS2_Size[i][2].split("|");
			var price     = SS2_Size[i][3].split("|");
			var dstate    = SS2_Size[i][4].split("|");
			var widthstr  = SS2_Size[i][6].split("|");

			for (var j=0;j<width.length;j++)
			{
				if (width[j]==width_value) // richtige weite gefunden ?
				{
					element  = document.getElementById("SS2_SelectedWidth");
					if (element)
						element.value = widthstr[j];
//						element.innerHTML = widthstr[j];

					element = document.getElementById("formAnr");
					if (element)
						element.value = anr[j];
						
					element = document.getElementById("SS2_PriceMsg");
					if (element)
						element.innerHTML = price[j];// +" "+ SS2_Currency;
					
					if (dstate[j]==0)
						SetInnnerHtml("SS2_DeliveryMsg",SS2_TxTNichtLieferbar,"block");
					else	
						SetInnnerHtml("SS2_DeliveryMsg",SS2_TxTLieferbar,"block");
					SS2_CheckVarsAndMsg();
				return;
				}
			}
			SS2_CheckVarsAndMsg();
			return;
		}	
	}
}

function SetInnnerHtml(id,value,display)
{
	var element  = document.getElementById(id);
	if (element)
	{
		element.style.display = display;
		element.innerHTML     = value;
	}
}
// die Sizeboxen auf nicht angewählte Klassen zu setzen
function ResetSizeBox()
{
	for (var i=0;i<SS2_Size.length;i++)
	{
		element  = document.getElementById("SS2_Size" + SS2_Size[i][0]);
		if (element)
			element.className = "";
	}
}
// Radiobutton und die dazugehörigen Elemente artikelnummer und preis ausblenden 
function ResetRadioWidth()
{
	for (var i = 0; i < 10; i++)
	{
		var element  = document.getElementById("SS2_Width_" + i);
		if (element)
		{
			element.checked = "";
//			element.disabled = true;
			element.style.display = "none";
		}
/*
		element  = document.getElementById("SS2_Width_" + i + "_anr");
		if (element)
		{
			element.innerHTML = '';
		//	element.style.display = "none";
		}
*/
/*
		element  = document.getElementById("SS2_Width_" + i + "_price");
		if (element)
		{
			element.innerHTML = '';
		//	element.style.display = "none";
		}
*/
		element  = document.getElementById("SS2_WidthContainer_" + i);
		if (element)
			element.style.display = "none";
	}

	element  = document.getElementById("SS2_SelectedWidth");
	if (element)
	//	element.innerHTML = '';
		element.value = "";

}
// einen Radiobutton anzeigen Artikelnummer und Preis setzen
function DisplayRadioWidth(idx,anr,price,checked)
{
	var element  = document.getElementById("SS2_WidthContainer_" + idx);
	if (element)
		element.style.display = "";
	else
		DebugMsg("Element nicht gefunden: SS2_WidthContainer_" + idx);

	element  = document.getElementById("SS2_Width_" + idx);
	if (element)
	{
		element.disabled       = false;
		element.style.display = "block";
		if (checked)
			element.checked = true;
	}
	else
		DebugMsg("Element nicht gefunden: SS2_Width_" + idx);
/*
	element  = document.getElementById("SS2_Width_" + idx + "_anr");
	if (element)
	{
		element.innerHTML = anr;
		element.style.display = "block";
	}
	else
		DebugMsg("Element nicht gefunden: SS2_Width_" + idx + "_anr");

	element  = document.getElementById("SS2_Width_" + idx + "_price");
	if (element)
	{
		element.innerHTML = price;
		element.style.display = "block";
	}
	else
		DebugMsg("Element nicht gefunden: SS2_Width_" + idx + "_price");
*/
}

function SS2_SendForm()
{
	if (SS2_CheckVarsAndMsg())
	{
	
		document.SS2.submit();
	}
}

function SS2_CheckVarsAndMsg()
{
	var error = "";
	
	var element = document.getElementById("formSize");
	if (element)
	{
		if (element.value==-1)
			error += SS2_TxTSizeError + "<br />";
	}
	else 
		error += "Formvariable-> formSize nicht gefunden!<br />";

	var found = false;
	for (var i=0; i<document.SS2.formWidth.length; i++)
	{
		if (document.SS2.formWidth[i].checked == true)
		{
			found = true;
	//alert("checked");
		}
	}
	
	if (found==false)
	{
		if (document.SS2.formWidth.length!=undefined) // wenn nur eine  weite da dann ist dieser Wert undefined
			error += SS2_TxTWidthError + "<br />";
	}
	
	//	error += "Formvariable-> formWidth nicht gefunden!<br />";
		
	element = document.getElementById("SS2_Count");
	if (element)
	{
		value = parseInt(element.value);
		if (isNaN(value) || value<=0)
			error += SS2_TxTCountError + "<br />";
	}
	else 
		error += "Formvariable-> formCount nicht gefunden!<br />";

//	alert(document.SS2.formSize.value);

	if (error.length)
	{
		SetInnnerHtml("SS2_Err",error,"block");
		return(false);
	}
	else		
		SetInnnerHtml("SS2_Err","","none");

	return(true);
}
function trim(stringToTrim) 
{
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function ltrim(stringToTrim) 
{
	return stringToTrim.replace(/^\s+/,"");
}
function rtrim(stringToTrim) 
{
	return stringToTrim.replace(/\s+$/,"");
}
function DebugMsg(msg)
{
	if (Debug_SS2)
		alert(msg);
}

