
function updateWK(val,ID,gebinde)
{
if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0)
  {

	var URI = "../../updateWK.php?ID="+ID+"&value="+val+"&gebinde="+gebinde;
	//alert (URI);
	xmlHttp.open("GET", URI , true); 
	xmlHttp.onreadystatechange = updateTotals;
	xmlHttp.send("ID="+ID+"&value="+val+"&gebinde="+gebinde);
	
  }
  else
    // if the connection is busy, try again after one second  
    setTimeout('updateWK('+val+','+ID+','+typ+')', 1000);
}



function updateTotals()
{
 if (xmlHttp.readyState == 4) 
  {
    // status of 200 indicates the transaction completed successfully
    if (xmlHttp.status == 200) 
    {
      // extract the XML retrieved from the server
      xmlResponse = xmlHttp.responseXML;
      // obtain the document element (the root element) of the XML structure
      xmlRoot = xmlResponse.documentElement;
      var callerArray = xmlRoot.getElementsByTagName("caller");
	  var gebindeArray = xmlRoot.getElementsByTagName("gebinde");
	  var sumArray = xmlRoot.getElementsByTagName("sum");
	  var totsumArray = xmlRoot.getElementsByTagName("totsum");
	  var caller = callerArray[0].firstChild.data;
	  var gebinde = gebindeArray[0].firstChild.data;
	  var sum  = sumArray[0].firstChild.data;
	  //sum=Number.sum.toFixed(2);
	  var totsum = totsumArray[0].firstChild.data;
	  //alert(totsum);
	  //totsum=Number.totsum;
	  if (document.getElementById("tot_"+caller+"_"+gebinde)) document.getElementById("tot_"+caller+"_"+gebinde).innerHTML=sum;
	  if (document.getElementById("total")) document.getElementById("total").innerHTML=totsum;
	  if (document.getElementById("idwk_"+caller+"_"+gebinde) && document.getElementById("input_wk_"+caller+"_"+gebinde))
	  {
		  var theFieldVal=document.getElementById("input_wk_"+caller+"_"+gebinde).value;
		  if  (theFieldVal=="" || (isNaN(theFieldVal) || parseInt(theFieldVal)==0))
		  document.getElementById("idwk_"+caller+"_"+gebinde).innerHTML="in den Warenkorb &raquo;";
		  else  document.getElementById("idwk_"+caller+"_"+gebinde).innerHTML="im Warenkorb &raquo;";
	  }
    } 
    // a HTTP status different than 200 signals an error
    else 
    {
      alert("updateTotals(): There was a problem accessing the server: " + xmlHttp.statusText);
    }
  }
}


function modifyQueryString(typ,method)
{
 	var opened = QueryString.get("open");
 	if (opened)
	{
		var openElements=opened.split(",");
		if (method=="add")	{if (openElements.indexOf(typ)<0)openElements.push(typ);}
		else if (method=="remove")
		{
		if (openElements.indexOf(typ)>=0) {openElements.splice(openElements.indexOf(typ),1);}
		}
		if (openElements.length) QueryString.set("open",openElements.join(","));
		else QueryString.remove("open");
		//QueryString.make();
		//alert (openElements.join(","));
		//alert (QueryString.make());
	}
	else if (method=="add")
	{
	QueryString.set("open",typ);
	}
}




function numbersonly(myfield, e, dec)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);

// control keys
if ((key==null) || (key==0) || (key==8) ||
    (key==9) || (key==13) || (key==27) )
   return true;

// numbers
else if ((("0123456789").indexOf(keychar) > -1))
{
   return true;
}
// decimal point jump
else if (dec && (keychar == "."))
   {
   myfield.form.elements[dec].focus();
   return false;
   }
else
   return false;
}

function noTags(myfield, e)
{
var key;
var keychar;
if (window.event)
   key = window.event.keyCode;
else if (e)
   key = e.which;
else
   return true;
keychar = String.fromCharCode(key);
if (("><").indexOf(keychar) > -1)return false;
return true;
}

function checkWK(){
if(totsum)
{
if (totsum==0 || totsum=="0.00" || totsum=="0,00") {
alert ("Sie müssen mindestens einen Artikel im Warenkorb haben TOT"+totsum); return false;
}
else {location.href="shop.php?mode=order";return;}
}
alert ("Sie müssen mindestens einen Artikel im Warenkorb haben");return false;
}


function whichBrs() {
var agt=navigator.userAgent.toLowerCase();
if (agt.indexOf("opera") != -1) return 'Opera';
if (agt.indexOf("staroffice") != -1) return 'Star Office';
if (agt.indexOf("webtv") != -1) return 'WebTV';
if (agt.indexOf("beonex") != -1) return 'Beonex';
if (agt.indexOf("chimera") != -1) return 'Chimera';
if (agt.indexOf("netpositive") != -1) return 'NetPositive';
if (agt.indexOf("phoenix") != -1) return 'Phoenix';
if (agt.indexOf("firefox") != -1) return 'Firefox';
if (agt.indexOf("safari") != -1) return 'Safari';
if (agt.indexOf("skipstone") != -1) return 'SkipStone';
if (agt.indexOf("msie") != -1) return 'Internet Explorer';
if (agt.indexOf("netscape") != -1) return 'Netscape';
if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';
if (agt.indexOf('\/') != -1) {
if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') {
return navigator.userAgent.substr(0,agt.indexOf('\/'));}
else return 'Netscape';} else if (agt.indexOf(' ') != -1)
return navigator.userAgent.substr(0,agt.indexOf(' '));
else return navigator.userAgent;
}

function checkMail(x)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x))
	 {
	return true;
	}
	else 
	{
	return false;
	}
}
function checkURL (x)
{
	var filter  = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	if (filter.test(x))
	 {
	return true;
	}
	else 
	{
	return false;
	}
}

function chkForm(formID)
{
	//alert ("chk");return false;
	if (chkForm.arguments.length==2) callObj=chkForm.arguments[1];
	else callObj=0;
	theForm=document.getElementById(formID);
	var groups = new Array();
	var errors = new Array();
	var j=0;
	var message="";
	for (var i = 0; i < theForm.length; i++)
	{
		var el=theForm.elements[i];
		if (el.name=="getScrollTop" || el.name=="scrollTop")
		{
		
		if (document.body.scrollTop) el.value=document.body.scrollTop;
		else el.value=window.pageYOffset;
		}
		if(el.type=="radio" || el.type=="select-multiple" || el.type=="select-one" || el.type=="checkbox" || el.type=="text" || el.type=="textarea"  || el.type=="password")
		{
			var theVal = trim(el.value);
			if (el.type=="password" && el.getAttribute('lp_type')!="passcontrol")
			{
				var passCompare = theVal;
			}
			if (el.type=="checkbox" || el.type=="radio")
			{
				theVal=Number(el.checked);
				if(theVal==0) theVal="";
				else theVal="1";
			}
			if (el.getAttribute('lp_grp'))
			{
				grpNr = Number(el.getAttribute('lp_grp'));
				
				if (groups.length<grpNr)
				{
					//alert (grpNr);
					groups[grpNr-1] = new Object();
					groups[grpNr-1]["members"]= new Array();
					groups[grpNr-1]["values"]= new Array();
				}
				groups[grpNr-1]["members"].push(el);
				groups[grpNr-1]["values"].push(theVal);
			}
			if (el.getAttribute('pflicht') && theVal=="")
			{
			
				errors[j]= new Object();
				errors[j]["element"]=el;
				
				if (el.getAttribute('message'))
					message = el.getAttribute('message');
				else
				{
					switch(el.type)
					{
					case "radio":
						message = "Bitte wählen Sie einen Wert aus!";
						break;
					case "select":
						message = "Bitte wählen Sie einen Wert aus!";
						break;
					case "checkbox":
						message = "Bitte kreuzen Sie das Feld an!";
						break;
					default:
						message = "Feld darf nicht leer sein!";
						break;
					}
				}
				errors[j]["message"]=message;
				j++;
			}
			else if (el.getAttribute('lp_type')=="email" && (el.getAttribute('pflicht') || theVal!="") && !checkMail(theVal))
			{
				errors[j]= new Object();
				errors[j]["element"]=el;
				errors[j]["message"]="Keine gültige Mailadresse!";
				j++;
			}
			else if (el.getAttribute('lp_type')=="url" && (el.getAttribute('pflicht') || theVal!="") && !checkURL(theVal))
			{
				errors[j]= new Object();
				errors[j]["element"]=el;
				errors[j]["message"]="Kein gültiger URL!";
				j++;
			}
			else if (el.getAttribute('minlength') && theVal.length < Number(el.getAttribute('minlength')))
			{
				errors[j]= new Object();
				errors[j]["element"]=el;
				errors[j]["message"]="Muss mindestens " + el.getAttribute('minlength') + " Zeichen lang sein!";
				j++;
			}
			if (el.getAttribute('lp_type')=="passcontrol" && theVal != passCompare)
			{
				errors[j]= new Object();
				errors[j]["element"]=el;
				errors[j]["message"]="Passworte stimmen nicht überein!";
				j++;
			}
		}
	}
	for (var i = 0; i < groups.length; i++)
	{
		//alert(groups[i]["values"][0];
		//alert(groups.length);
		var theGRP = groups[i];
		var checkGroup = 0;
		var groupType = theGRP["members"][0].type;
		var lp_groupType = theGRP["members"][0].getAttribute('lp_type');
		for (var k = 0; k < theGRP["members"].length; k++)
		{
			if (lp_groupType=="int")
			{
			if (theGRP["values"][k].length && Number(theGRP["values"][k])>0)
			{
				checkGroup = 1;
				break;
			}
			}
			else
			{
			if (theGRP["values"][k].length)
			{
				checkGroup = 1;
				break;
			}
			}
		}
		if (checkGroup==0)
		{
			errors[j]= new Object();
			errors[j]["element"]=theGRP["members"][0];
			
			if (groupType=="text") errors[j]["message"]="Mindestens ein Feld muss ausgefüllt werden!";
			else errors[j]["message"]="Mindestens eine Option muss ausgewählt sein!";
			j++;
		}
	}
	alertText = "";
	for (var i = 0; i < errors.length; i++)
	{
	if (errors[i]["element"].getAttribute('lp_name'))
		alertText = alertText + "Feld "+ errors[i]["element"].getAttribute('lp_name') + ": " + errors[i]["message"]+"\n";
	else
		alertText = alertText + "Feld "+ errors[i]["element"].name + ": " + errors[i]["message"]+"\n";
	}
	if (alertText!="")
	{
		alertText = "Folgende Fehler sind aufgetreten:\n" + alertText;
		alert (alertText);
		errors[0]["element"].focus();
		return false;
	}
	if (callObj==0)
	{
	//alert("zeroKama");
	theForm.submit();
	}
	else
	{
	//alert("wasn");
	if ((callObj.type)) return true; //ist button
	theForm.submit();
	}
}

function trim(sString,side)
{
	if (side!="right")
	{
		while (sString.substring(0,1) == ' ')
		{
			sString = sString.substring(1, sString.length);
		}
	}
	if (side!="left")
	{
		while (sString.substring(sString.length-1, sString.length) == ' ')
		{
			sString = sString.substring(0,sString.length-1);
		}
	}
	return sString;
}



