var aNrs = Array();
var joinedANrs = Array();

var vorb = (visitenkarten||buecher);

if(buecher){
	var paper = Array();
}

var sum=true;

$(function(){
	var prodID=0;
	if(visitenkarten){
		var as=$("#content table.products tr.table_even:first .table_border_right:last a");
		if(as.length){
			var nrs=as.attr('href').split("?")[1].split("&")[0].split("=")[1];
			aNrs[prodID]=Array(Array("netto",nrs),Array("brutto",nrs));
			joinedANrs[prodID]=nrs.split(",")[0];
		}
	}else{
		$.each($("#content table.products"),function(){
			aNrs[prodID]=Array();
			var prodANrs=Array();
			var anr;
			
			var trcount=0;
			
			$.each($(this).find("tr"),function(){
				var acount=0;
				$.each($(this).find(".table_border_right a"),function(){
					anr=$(this).attr('href').split("?")[1].split("&")[0].split("=")[1];
					if(trcount==0){
						aNrs[prodID].push( Array("netto",anr),Array("brutto",anr));
						prodANrs.push(anr);
					}else{
						if(aNrs[prodID].length>0 && aNrs[prodID][acount][1].indexOf(anr)==-1 && aNrs[prodID][acount+1][1].indexOf(anr)==-1){
							aNrs[prodID][acount][1]+=","+anr;
							aNrs[prodID][acount+1][1]+=","+anr;
							sum=false;
							prodANrs.push(anr);
						}
					}
					acount+=2;
				});
				if($(this).attr('class').indexOf('head')==-1){
					trcount++;
				}
			});
			
			if(buecher){
				paper[prodID]=Array();
				paper[prodID].push();
				$.each($(this).find(".table_head:last th"),function(){
					var h=$(this).html();
					if(h&&h!="&nbsp;"){
						paper[prodID].push($(this).html());	
					}
				});
			}
			
			joinedANrs[prodID]=(vorb?anr.split(",")[0]:prodANrs.join("|"));
			prodID++;
		});
	}
	

	var prodid=0;
	var l=vorb?":last":"";	
	$.each($(".products"+l),function(){
		var $this = $(this);
		if(!vorb){
			$this.attr('id','products'+prodid);
		}
		var colCnt = visitenkarten?4:$this.find("tr.table_even:first td").length;
		
		if(aNrs[prodid] && aNrs[prodid].length){
			var mindest;
			$.ajax({
				async: false,
				dataType: "text",
				url: relRootPath+"data/bestellung/getmindest.php?anr="+joinedANrs[prodid],
				success: function(inhalt){
					mindest = parseInt(trim(inhalt));
				}
			});
			var kgv;
			$.ajax({
				async: false,
				dataType: "text",
				url: relRootPath+"data/bestellung/getdivisor.php?anr="+joinedANrs[prodid],
				success: function(inhalt){
					kgv = parseInt(trim(inhalt));
				}
			});

			var html='';
			if(vorb){
				html+='<table cellspacing="0" id="products0" cellpadding="0" class="products"><tbody>';
			}
			
//			html+='<tr class="table_head"><th align="left" colspan="'+colCnt+'"></th></tr>';

			if(vorb){ // namen
				var text = visitenkarten?"Namen":"Seiten";
				html+='<tr class="table_head"><th align="left" colspan="'+colCnt+'"><label for="txtinput2'+prodid+'" class="prodlabel">&nbsp;&nbsp;Anzahl '+text+': </label><input type="text" onkeyup="nurZahlen(this);" id="txtinput2'+prodid+'" class="txtinput"></th></tr>';
			}
			html+='<tr class="table_subhead"><th align="left" colspan="'+colCnt+'">&nbsp;&nbsp;<span class="mind">Mindestbestellmenge: '+mindest+' | St&uuml;ckelung: '+kgv+'</span><br/><label for="txtinput'+prodid+'" class="prodlabel">&nbsp;&nbsp;freie St&uuml;ckzahleingabe: </label><input type="text" onkeyup="nurZahlen(this);" id="txtinput'+prodid+'" class="txtinput"> <input type="button" value="&gt;&gt; berechnen" onclick="chgZA(\'txtinput\','+prodid+');" class="butinput"></th> </tr>';
			
			html+='<tr class="error"><td height="18" colspan="'+colCnt+'"><span></span>&nbsp;&nbsp;<img class="loader" src="'+relRootPath+'image/loader.gif" width="16" height="11" alt="loader" /></td></tr>\
			<tr class="result table_even">\
			<td class="table_border_right" width="'+100/colCnt+'%" id="stueckzahl'+prodid+'"></td>';
			for(var i=0;i<aNrs[prodid].length;i++){
				var act=aNrs[prodid][i];
				html+='<td width="'+100/colCnt+'%" class="preise '+act[0]+act[1].replace(/,/g,"")+((i+1)%2==0?' table_border_right':'')+'">&nbsp;</td>';
			}
	
			html+='<td width="'+100/colCnt+'%" class="indLZ">&nbsp;</td>\
			</tr>\
			<tr class="table_odd"><td class="ende" colspan="'+colCnt+'"><br /></td></tr>';
			
			if(mindest==0 || isNaN(kgv)){}
			
			if(vorb){
				html+='</tbody></table>';
				$this.after(html);
			}else{
				$this.append(html);
			}
			prodid++;
		
		}
	});
});

function getStaerke(papier){
	switch(papier){
		case "90g Papier":
			return 0.11;
		case "100g Papier":
			return 0.123;
		case "90g Munken":
			return 0.105;
		case "130g KD":
			return 0.115;
		case "150g KD":
			return 0.135;
	}	
}

function blattFehler(papier,blattzahl){
	var mm=getStaerke(papier);
	var erg = blattzahl * mm;
	erg = parseInt ( erg * 100 );
	erg = parseFloat  ( erg / 100 );
	if ( erg + 1 < 4) {
		return "zu d&uuml;nn";
	} else if ( erg + 1 > 50 ) {
		return "zu dick";
	} else {
		return false;
	}
}

var pool,actErrTR,actResultTR,actLoader,actIndLZ;
function chgZA (inputid,prodid) {
	inputid=inputid+prodid;
	actErrTR = $("#products"+prodid+" .error");
	actResultTR = actErrTR.next();
	actLoader = actErrTR.find("img");
	actIndLZ = actResultTR.find("td:last");

	showMsg("Preis wird berechnet");
	loader("show");
	var anzahl = $("#"+inputid)[0].value;
	if(vorb){
		var anzahl2 = $("#txtinput2"+prodid)[0].value;
		//alert(namen);
	}
  
  //maximale Stueckzahl:
  if ( ( anzahl ) > 10000000 ) {
			showMsg('<span class="red">Auflage zu hoch</span>');
			loader("hide");
	} else {
    
    
	if(anzahl2>0||!vorb){
		actResultTR.find("td").html("&nbsp;");
		if ( isNumeric ( anzahl ) ) {
			var mindest;
			$.ajax({
				async: false,
				dataType: "text",
				url: relRootPath+"data/bestellung/getmindest.php?anr="+joinedANrs[prodid],
				success: function(inhalt){
					mindest = parseInt(trim(inhalt));
				}
			});
			if ( parseInt(anzahl) >= mindest ) {
				var kgv;
				$.ajax({
					async: false,
					dataType: "text",
					url: relRootPath+"data/bestellung/getdivisor.php?anr="+joinedANrs[prodid],
					success: function(inhalt){
						kgv = parseInt(trim(inhalt));
					}
				});
        
        
        function number_format (number, decimals, dec_point, thousands_sep)
          {
          var exponent = "";
          var numberstr = number.toString ();
          var eindex = numberstr.indexOf ("e");
          if (eindex > -1)
          {
          exponent = numberstr.substring (eindex);
          number = parseFloat (numberstr.substring (0, eindex));
          }
  
          if (decimals != null)
          {
          var temp = Math.pow (10, decimals);
          number = Math.round (number * temp) / temp;
           }
          var sign = number < 0 ? "-" : "";
          var integer = (number > 0 ? 
            Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
  
          var fractional = number.toString ().substring (integer.length + sign.length);
          dec_point = dec_point != null ? dec_point : ".";
          fractional = decimals != null && decimals > 0 || fractional.length > 1 ? 
                 (dec_point + fractional.substring (1)) : "";
          if (decimals != null && decimals > 0)
          {
          for (i = fractional.length - 1, z = decimals; i < z; ++i)
          fractional += "0";
          }
  
          thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? 
                    thousands_sep : null;
          if (thousands_sep != null && thousands_sep != "")
          {
	        for (i = integer.length - 3; i > 0; i -= 3)
          integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
          }
  
          return sign + integer + fractional + exponent;
          }
        
        
				if(kgv > 0 && !isNaN(kgv)){
					if ( parseInt(anzahl) % kgv == 0 ) {
						$("#stueckzahl"+prodid).html(number_format(anzahl, 0, "", "."));
						
						pool=new Array(new Array(relRootPath+"data/bestellung/getlieferzeit.php?anr="+joinedANrs[prodid]+"&stk="+anzahl,"indLZ" ));
						for(var i=0;i<aNrs[prodid].length;i++){
							var stk;
							if(visitenkarten){
								stk=anzahl2*anzahl+","+(anzahl2-1);
							}else if(buecher){
								stk=anzahl+","+anzahl*Math.ceil(anzahl2/2)+","+anzahl;
							}else{
								stk=anzahl;
              }
							
							if(buecher){
								var actpaper=paper[prodid][Math.floor(i/2)];
								var err=blattFehler(actpaper,Math.ceil(anzahl2/2));
							}else{
								var err=false;	
							}
							if(!err){
								pool.push( new Array(relRootPath+"data/bestellung/getprice.php?"+(sum?"sum=1&":"")+"anr="+aNrs[prodid][i][1]+"&stk="+stk+"&type="+aNrs[prodid][i][0]+"&linked=1&value=0",aNrs[prodid][i][0]+aNrs[prodid][i][1].replace(/,/g,'')) );
							}else{
								pool.push(new Array("error",err,"f&uuml;r "+actpaper,aNrs[prodid][i][0]+aNrs[prodid][i][1].replace(/,/g,''),aNrs[prodid][i+1][0]+aNrs[prodid][i+1][1].replace(/,/g,'')));
								i++;
							}
						}
						startAjax(pool);
					} else {
						showMsg('<span class="red">W&auml;hlen Sie ein Vielfaches von ' + kgv + '</span>');
						loader("hide");
					}
				} else {
					showMsg('<span class="red">Interner Fehler! St&uuml;ckelung konnte nicht gefunden werden.</span>');
					loader("hide");				
				}
			} else {
				showMsg('<span class="red">Geben Sie ein Mindestbestellmenge von ' + mindest + ' St&uuml;ck ein!</span>');
				loader("hide");
			}
		} else {
			showMsg('<span class="red">Bitte geben Sie nur Zahlen ein</span>');
			loader("hide");
		}
	} else {
		showMsg('<span class="red">Anzahl der Namen muss mindestens 1 betragen</span>');
		loader("hide");
	}
  
  //maximale Stueckzahl Ende else:
  }
  
  
}

var finished=0;
function startAjax(){
	finished=0;
	for(var i=0;i<pool.length;i++){
		if(pool[i][0]=="error"){
			actResultTR.find("."+pool[i][3]).html('<span class="red">'+pool[i][1]+'&nbsp;</span>');
			actResultTR.find("."+pool[i][4]).html('<span class="red">'+pool[i][2]+'&nbsp;</span>');
			finished++;
			if(finished==pool.length){
				resetMsg();
				loader("hide");
			}
		}else{
		
			$.ajax({
				async: true,dataType: "text",url: pool[i][0],data: "id="+pool[i][1],
				success: function(inhalt){
					inhalt=inhalt.split("|"); id=inhalt[0]; inhalt=inhalt[1];
					actResultTR.find("."+id).html((trim(inhalt)!="")?trim(inhalt).replace(/href="/,'href="'+relRootPath):"&nbsp;");
					if(++finished==pool.length){
						resetMsg();
						loader("hide");
					}
				}
			});
		}
	}
}

function showMsg(txt){
	actErrTR.hide().show().find("span").html(txt);
	actResultTR.hide();
}
function resetMsg(){
	actErrTR.hide().find("span").empty();
	if($.browser.msie&&($.browser.version=="8.0"||$.browser.version=="7.0")){ actResultTR.show(); }
	else{ actResultTR.fadeIn(); }
}
function loader(what){
	if(what=="show"){
		actLoader.show();			
	}else if(what=="hide"){
		actLoader.hide();
	}			
}