//**************************************************************************************************************
var innerItemSeparator = "|";
var itemSeparator = "###";
var basketAddressSeparator = "_$_";
// basket str format... 
// fieldValue[0][0]|fieldValue[0][1]###fieldValue[n][0]|fieldValue[n][1]_$_userData[0]|userData[1]|userData[n]
//**************************************************************************************************************

/**
 basket = new Array()
 basket[0] = new Array() <-- quantity
 basket[1] = new Array() <-- partno....
**/


function initBasket() {
	belenusHome.belenusBasket = new Array();
	belenusHome.belenusBasketUserDatas = new Array();
	for(i in belenusHome.basketFields) {
		belenusHome.belenusBasket[i] = new Array();
	}
	if(belenusHome.saveCartOnExit || belenusHome.cookieActivate) {
		if(belenusHome.saveCartOnExit) {
			if(belenusHome.getXCookie("daBasket") != null) {
				strToArray(belenusHome.getXCookie("daBasket"));
			}
		}
	}
    
  /* 
    looks at the startup for the param 'HOOK_URL'
    if it was available, the default address to where the basket will be send 'sendBasketTo' (<-- defined at preferences.js)
    will be overwritten.
  */
  var hookUrl = (getQueryField(belenusHome.location.search, 'HOOK_URL') == null) ? "" : getQueryField(belenusHome.location.search, 'HOOK_URL');
  belenusHome.sendBasketTo = (hookUrl != "") ? hookUrl : belenusHome.sendBasketTo;  
}


function strToArray(str) {
//	alert("strToArray:"+str);
	var basketValue = null;
	var addressValue = null;
	
	if(str.indexOf(basketAddressSeparator) != -1) {
		basketValue = str.split(basketAddressSeparator)[0];	
		addressValue= str.split(basketAddressSeparator)[1];
		
		if(basketValue != "") {
			if(basketValue.indexOf(itemSeparator) != -1) {
				var items = basketValue.split(itemSeparator);
				for(i in items) {
					var itemCache = items[i].split(innerItemSeparator);
					if(itemCache.length == belenusHome.basketFields.length) {
						for(j in belenusHome.basketFields) {
							belenusHome.belenusBasket[j][i] = itemCache[j];
						}
					}
				}
			} else {
				if(basketValue.indexOf(innerItemSeparator) != -1) {
					var itemCache = basketValue.split(innerItemSeparator);
					if(itemCache.length == belenusHome.basketFields.length) {
						for(j in belenusHome.basketFields) {
							belenusHome.belenusBasket[j][0] = itemCache[j];
						}
					}
				}
			}
		}
		if(addressValue != "") {
			if(addressValue.indexOf(innerItemSeparator) != -1) {
				addressValue = addressValue.split(innerItemSeparator);
				for(k in belenusHome.basketAddressFields) {
          belenusHome.belenusBasketUserDatas[k] = belenusHome.checkValue(addressValue[k]);
				}
			}
		} else {
			for(k in belenusHome.basketAddressFields) {
				belenusHome.belenusBasketUserDatas[k] = "";
			}
		}
	}
}


function arrayToStr() {
	//alert("arrayToStr:"+belenusHome.belenusBasket);
	var bItems="";
	var aFields="";
	var undef;
	if((belenusHome.saveCartOnExit || belenusHome.cookieActivate) && (belenusHome.belenusBasket[0].length > 0)){

		for(i in belenusHome.belenusBasket[0]) { // run through the items...
		
			for(j in belenusHome.belenusBasket) {// run through the basketFields...
				var dash = (belenusHome.belenusBasket.length-1 == j) ? "" : innerItemSeparator;
				if(belenusHome.belenusBasket[j][i] != undef && belenusHome.basketFields[j] != belenusHome.JUMP_TO_CATALOG[0]) {
					bItems += belenusHome.belenusBasket[j][i];
					bItems += dash;
				} else {
					bItems += dash;
				}
			}	
				var itemsDash = (belenusHome.belenusBasket[0].length-1 == i) ? "" : itemSeparator;
				bItems += itemsDash;
		}
		for(k in belenusHome.basketAddressFields) {
			var dash = (belenusHome.basketAddressFields.length-1 == k) ? "" : innerItemSeparator;
			if(belenusHome.belenusBasketUserDatas[k] != undef) {
				aFields += belenusHome.belenusBasketUserDatas[k];
				aFields += dash;
			} else {
				aFields += dash;
			}
		}

	}	
	belenusHome.cookieReset("daBasket");
	belenusHome.setXCookie("daBasket", bItems.concat(basketAddressSeparator).concat(aFields));
  return bItems.concat(basketAddressSeparator).concat(aFields);
}




belenusHome.theKom = null;
function belOrderItem(itemdata) {
  theKom = null;
  var treepath = getQueryField(itemdata,"PartsURI");
  document.getElementById("InvisibleFrame").src="get_cart_info.jsp?treepath="+treepath;
  belenusHome.itemdataCache = itemdata;	
}

function belOrderItemAfterGetKom() {
  addItem(belenusHome.itemdataCache);
}



function addItem(itemdata) {
	if (itemdata != "null" && belenusHome.shoppingEnabled == true) {
		var itemData = new Array(); // a temp array
		for(iBindex in belenusHome.basketFields) { // get itemdata.....
			if(belenusHome.basketFields[iBindex] == belenusHome.OCI_MASTERNUM[0]) {
				// at using oci_interface get MasterNumber...
        itemData[iBindex] = (helpGettingRightFieldValue(itemdata, belenusHome.basketFields[iBindex].concat(belenusHome.supNo)) == null) ? "" : helpGettingRightFieldValue(itemdata, belenusHome.basketFields[iBindex].concat(belenusHome.supNo));
			} else {
        if(belenusHome.basketFields[iBindex] == belenusHome.QUANTITY_PROPERTIES[0]) {
          if(helpGettingRightFieldValue(itemdata, belenusHome.basketFields[iBindex]) == undef || helpGettingRightFieldValue(itemdata, belenusHome.basketFields[iBindex]) == null || helpGettingRightFieldValue(itemdata, belenusHome.basketFields[iBindex]) == "" || helpGettingRightFieldValue(itemdata, belenusHome.basketFields[iBindex]) == "null") {
            itemData[iBindex] = "1";
          } else { 
            itemData[iBindex] = helpGettingRightFieldValue(itemdata, belenusHome.basketFields[iBindex]);
          }
        } else {
				  itemData[iBindex] = helpGettingRightFieldValue(itemdata, belenusHome.basketFields[iBindex]);
        }
			}
		}
    itemData[getFieldPos(belenusHome.basketFields, 'cartinfo')] = belenusHome.theKom;
    belenusHome.theKom = null;    

 		var detectItem = controllItem(itemData);
    
    for(n in itemData) { // delete entries with null or "null" value... a CLEAN UP
      if(itemData[n] == "null" || itemData[n] == null) {
        itemData[n] = "";
      }
    }
		if(belenusHome.multiselection == true || belenusHome.belenusBasketConfirmPopupWindow == false) {
			nowFinallyAddTheItem(itemData, detectItem);
		} else {
			popup(itemData, detectItem);
		}
	} 
}
		//the follow two function are used by addItem... see above..
		
		//this function opens a popup window
		//@itemData is the current set of data which should be added to the basket....
		//@detectItem if the item is already available in the basket, than it means the position (index)... if it doesn't exists than it is "false"
		function popup(itemData, detectItem) {
      var keyValuePairs = "";
      for(keys in belenusHome.basketFields) {
        keyValuePairs += belenusHome.basketFields[keys] + "=" + itemData[keys] + "&";
      }
			this.basketCache = itemData; // using for editing from the popup (quantity...)
			belenusHome.WM.openWindow("basketPopup", "detectItem="+detectItem, true);
		}
		
		//this function will be called by the popup window... the function above handle the popup...
		//@param also see above
		function nowFinallyAddTheItem(itemData, detectItem) {
      detectItem = controllItem(itemData);
			if(detectItem == "false") {
				for(i in belenusHome.belenusBasket) {
					belenusHome.belenusBasket[i][belenusHome.belenusBasket[i].length] = itemData[i];
				}
			} else {
				detectItem = parseInt(detectItem);
				for(k in belenusHome.basketFields) {
					if(belenusHome.basketFields[k] == belenusHome.QUANTITY_PROPERTIES[0]) { // <-- FOUND QUANTITY FIELD
						belenusHome.belenusBasket[k][detectItem] = parseInt(belenusHome.belenusBasket[k][detectItem])+parseInt(itemData[k]); // add together the amount... 
					}
				}	
			}
			// if the basket window is open... refresh it.. so that it will be updated
			if(belenusHome.WM.getWindowReference("basket") != null) { // is the window avialable?
				if(belenusHome.WM.getWindowReference("basket").closed == false) { // is the window open?
					belenusHome.WM.getWindowReference("basket").location.reload(); // it's open... reload...
				}
			}
			arrayToStr();
			set_gui_basket_status();
		}
	
	
function delItem(itemIndex, askForIt) { // @askForIt boolean
  var delIt = true;
  if(belenusHome.delConfirmDialog && askForIt) {
    if(belenusHome.WM.getWindowReference("basket") != undef || belenusHome.WM.getWindowReference("basket") != null)
    delIt = belenusHome.WM.getWindowReference("basket").confirm(belenusHome.ld["del_art"]);
    else {
      delIt = confirm(belenusHome.ld["del_art"]);
      belenusHome.blur();    
    }
  }
  if(delIt) {
  	var arrayLength = belenusHome.belenusBasket.length;
  	for(var i = 0; i < arrayLength; i++) {
  		var cache = new Array();
  		var k = 0;
  		for(j in belenusHome.belenusBasket[i]) {
  			if(j != itemIndex) {
  				cache[k++] = belenusHome.belenusBasket[i][j];
  			}
  		}
  		belenusHome.belenusBasket[i] = cache;
  	}
  	arrayToStr();
  	set_gui_basket_status();
  }
}


function delAllItems(askForIt) { // @askForIt boolean
  if(belenusHome.belenusBasket[0].length > 0) {
    var delAll = true;
    if(belenusHome.delAllConfirmDialog && askForIt) {
      if(belenusHome.WM.getWindowReference("basket") != undef || belenusHome.WM.getWindowReference("basket") != null)
      delAll = belenusHome.WM.getWindowReference("basket").confirm(belenusHome.ld["del_all"]);
      else {
        delAll = confirm(belenusHome.ld["del_all"]);
        belenusHome.blur();
      }
    }
    if(delAll) {
    	for(i in belenusHome.belenusBasket[0]) {
    		delItem(belenusHome.belenusBasket[0].length-1,false);
    	}
    }
  }
}


function editItem(fieldName, itemIndex, value) {
	var detectedField = "notDetected";
	for(i in belenusHome.basketFields) { // get right field index
		if(fieldName == belenusHome.basketFields[i]) detectedField = i;
	}

	if(detectedField != "notDetected") { // go on...
  
        var cacheDataSet = new Array();
        for(dub in belenusHome.basketFields) {
          if(detectedField == dub)
            cacheDataSet[dub] = value;
          else cacheDataSet[dub] = belenusHome.belenusBasket[dub][itemIndex];
        }
        var aSameIsExisting = controllItem(cacheDataSet);  
        
        if(aSameIsExisting != "NotFound" && itemIndex != aSameIsExisting) {
          nowFinallyAddTheItem(cacheDataSet, aSameIsExisting)
          delItem(itemIndex,false);
        } else {
    
          var Komma = false;
          if(fieldName == belenusHome.QUANTITY_PROPERTIES[0]) {
            Komma = value+="";
            Komma = (value.indexOf(",") != -1) ? true : false;
            value = parseFloat(value.replace(/,/,"."));
          }
          
      		if(fieldName == belenusHome.QUANTITY_PROPERTIES[0] && (value == 0 || isNaN(value))) { //if someone change the quantity to 0.... delete item
      			delItem(itemIndex,false);
      		} else {
      			if(fieldName == belenusHome.QUANTITY_PROPERTIES[0]) { // save as right value... if it is the quantity field....
              if(Komma) {
                value +="";
                value = value.replace(/\./,",");
              }
      				belenusHome.belenusBasket[detectedField][itemIndex] = value;
      			} else {
      				belenusHome.belenusBasket[detectedField][itemIndex] = value;
      			}
      			arrayToStr();
      		}
        } // aSameIsExisting after editing an item
        
	} else { // field not found
		alert("The field, that U want to change is not defined in belenusHome.basketFields");
	}
}

/****************************************************************************************************************\
|** secondary basket functions																				   **|
|** e.g. addresse and other user datas																		   **|
\****************************************************************************************************************/


function getUserData(key) { // e.g. Name, Street, City....
	var	fieldIndex = "NotFound";
	for(i in belenusHome.basketAddressFields) {
		if(belenusHome.basketAddressFields[i] == key) {
			 fieldIndex = i;
		}
	}
//	alert("getUserData("+key+"):"+fieldIndex);
	if(fieldIndex != "NotFound") {
    var undef;
    if(belenusHome.belenusBasketUserDatas[fieldIndex] != undef) {
      return belenusHome.belenusBasketUserDatas[fieldIndex];
    } else {
		  return "";
    }
	} else {
		return fieldIndex;
	}
}


function setUserData(key, value) {
	var	fieldIndex = "NotFound";
	for(i in belenusHome.basketAddressFields) {
		if(belenusHome.basketAddressFields[i] == key) {
			 fieldIndex = i;
		}
	}
	if(fieldIndex != "NotFound") {
		belenusHome.belenusBasketUserDatas[fieldIndex] = value;
	}
	arrayToStr();
}


/****************************************************************************************************************\
|** internal functions....																					   **|
\****************************************************************************************************************/

// return false if no entry was found, which was equal.... else it returns the position where it was found....
function controllItem(itemDataArray) {
	var controllingFields = new Array();
	for(i in belenusHome.basketFields) {
		for(j in belenusHome.basketItemIDFields) {
			if(belenusHome.basketFields[i] == belenusHome.basketItemIDFields[j]) {
				controllingFields[controllingFields.length] = i;
			}
		}
	}
var foundedEqualKeys = -1;
	for(i in belenusHome.belenusBasket[0]) {
		for(j in controllingFields) {
			if(belenusHome.belenusBasket[controllingFields[j]][i] == itemDataArray[controllingFields[j]]) { // if an entry was found which doesn't have to exisit twice....
				foundedEqualKeys++;
			}
		}
	  if(foundedEqualKeys == j) return i;
    foundedEqualKeys = -1;    
  }
	return "false";
}


function helpGettingRightFieldValue(itemdata, normalFieldName) {
	var subSign = 's';
	var returningValue = belenusHome.getQueryField(itemdata, subSign.concat(normalFieldName));
	if(returningValue != null) {
		return returningValue;	
	} else {
		var temp = belenusHome.getQueryField(itemdata, normalFieldName);
		if(temp == null) {
			//alert("!! Field \""+normalFieldName+"\" or subfield contains no data, or not exists");
			return null;
		} else {
			return temp;
		}
	}
}


/****************************************************************************************************************\
|** sort functions....																				   		   **|
\****************************************************************************************************************/

	      function numCompare(a,b) {
    	      return a.substring(0, a.lastIndexOf(':')) - b.substring(0, b.lastIndexOf(':'));
	      }
	      
	      function addColon(arr) {
		      for (var i = 0; i < arr.length; i++) arr[i] = arr[i] + ':' + i;
	      }
	      
	      function duplicateArray(arr) {
		      var newArr = new Array();
		      for (var i = 0; i < arr.length; i++) newArr[i] = arr[i];
		      return newArr;
	      }
	      
	      function removeColon(arr) {
		      for (var i = 0; i < arr.length; i++) arr[i] = arr[i].substring(arr[i].lastIndexOf(':') + 1);
	      }
	
			function reorganizeAllArrays(newArrangement) {
				var cache = new Array();
				/*
				for(i in data) { // go through the different datasets
					for(j in data[0]) { //arrange one data set new
						cache[j] = data[i][newArrangement[j]];
					}
					data[i] = cache;
					//reset cache...
					cache = new Array();
				}
				*/
				for(i in belenusHome.belenusBasket) {
					for(j in belenusHome.belenusBasket[0]) {
						cache[j] = belenusHome.belenusBasket[i][newArrangement[j]]
					}
					belenusHome.belenusBasket[i] = cache;
					cache = new Array();
				}
			}
		

function sortBasket(fieldName, strOrInt) {
	var fieldIndex = getFieldPos(belenusHome.basketFields, fieldName);
	if(fieldIndex == null) {
		alert("Error: in basket.js --> sortBasket(), field for sorting not found\nHave a look at the preferences.js");
	} else {
		var tempArray = belenusHome.belenusBasket[fieldIndex];
		var copy = duplicateArray(tempArray);
		addColon(copy);
		if(strOrInt == "string") {
			copy.sort();
		} else {
			copy.sort(numCompare);
		}
		removeColon(copy);
		reorganizeAllArrays(copy);
	}

}


/****************************************************************************************************************\
|** inti basket....																					   		   **|
\****************************************************************************************************************/

initBasket();


/****************************************************************************************************************\
|** GUI functions....																					   	   **|
\****************************************************************************************************************/

// sets the image the red point before the basket label in the navigation bar... 
// use the function which is defined in the navigation.js (onOrderImgChange)...
function set_gui_basket_status() {
	if(belenusHome.belenusBasket[0].length>0) {
  	belenusHome.onOrderImgChange(true);
    letsFlash();
	} else {
		belenusHome.onOrderImgChange(false);
	}
}

// letsFlash() parts
// if something is added to the basket, the basket button will be flash for a short moment,
// so that the user will see a reaction on his click at the addToBasket icon...
var currentState = false;
var internalCount = 0;
var normalBgColor = belenusHome.getCSSProperty(belenusHome.document, ".tab", "backgroundColor");
var flashBgColor = belenusHome.getCSSProperty(belenusHome.document, "#flashingLight", "backgroundColor");
function letsFlash() {
  if(belenusHome.oben.document.getElementById("flashZone")) {
    if(internalCount < belenusHome.flashs*2) {
      if((internalCount%2) == 0) {
        belenusHome.oben.document.getElementById("flashZone").style.backgroundColor = flashBgColor;
      } else {
        belenusHome.oben.document.getElementById("flashZone").style.backgroundColor = normalBgColor;
      }
      internalCount++;
      setTimeout("letsFlash("+!currentState+")",belenusHome.flashDelay);
    } else { // reset view to normal view
      internalCount = 0;
      belenusHome.oben.document.getElementById("flashZone").style.backgroundColor = normalBgColor;
    }
  }
}


//paintBasket(..)
//@alterable true|false . if true the quantity field is alterable else it's not alterable
function paintBasket(windowReference, alterable) {
	belenusHome.sortBasket(BASKET_SORT_FIELD[0], BASKET_SORT_FIELD[1]);
	var d = windowReference.document; // get the document...
	if(belenusHome.belenusBasket[0].length < 1) {
    d.write('<div style="margin-top:30px" align="center">'+belenusHome.ld['wkleer']+'</div>');
	} else {
		var commonSumPrice = 0;
		d.write('<form name="basketCanvas">');
		d.write('<table width="100%" border="0" cellpadding="2" cellspacing="1">');
		
		// paint table header.....
		d.write('<tr>'); 
		for(tdHeader in belenusHome.visibleBasketFields) {
			if(belenusHome.visibleBasketFields[tdHeader] == belenusHome.PRICE_PROPERTIES[0] && belenusHome.PRICE_PROPERTIES[1] == true) {
				d.write('<th>'+belenusHome.ld['basketHeader_'+belenusHome.visibleBasketFields[tdHeader]]+'</th>');
				d.write('<th>'+belenusHome.ld['basketHeader_sumPrice']+'</th>');
			} else {
				if(belenusHome.visibleBasketFields[tdHeader] != belenusHome.PRICE_PROPERTIES[0]) {
					d.write('<th align="left">'+belenusHome.ld['basketHeader_'+belenusHome.visibleBasketFields[tdHeader]]+'</th>');
				}
			}
		}
		d.write('</tr>');
		
		// paint basket items
		for(i in belenusHome.belenusBasket[0]) { // runs through every entry in the basket
			d.write('<tr>');
			var amount=null;		
			for(j in belenusHome.visibleBasketFields) {	// 
				if(belenusHome.visibleBasketFields[j] == belenusHome.QUANTITY_PROPERTIES[0]) { 
					//QUANTITY_PROPERTIES BLOCK....
					amount = belenusHome.belenusBasket[getFieldPos(belenusHome.basketFields, belenusHome.visibleBasketFields[j])][i];
          var Komma = amount+="";
          Komma = (Komma.indexOf(",") != -1) ? true : false;
          var shownAmount = amount = parseFloat(amount.replace(/,/,"."));
          if(Komma) {
            shownAmount+="";
            shownAmount = shownAmount.replace(/\./,",");
//            alert("amount:"+amount+"\nshownAmount:"+shownAmount);
          }
					if(alterable) {
						d.write('<td nowrap valign="top">');
						d.write('<input type="Text" size="5" id="quantityField'+i+'" oldValue="'+amount+'" style="text-align:right" class="quantity" value="'+shownAmount+'" ');
						d.write(' onchange="if(!isNaN(parseFloat(this.value)) && this.value != \'\') { belenusHome.editItem(belenusHome.QUANTITY_PROPERTIES[0], '+i+', this.value);self.location.href=self.location.href} else { alert(belenusHome.ld[\'error1\']);this.value=this.getAttribute(\'oldValue\')}">');
						d.write(' <a href="javascript:belenusHome.delItem('+i+',true);self.location.href=self.location.href"  title="'+belenusHome.ld["p_tt_delete"]+'" alt="'+belenusHome.ld["p_tt_delete"]+'"><img src="../images/html/delete.gif" border="0"></a>&nbsp;');						
					} else {
						d.write('<td valign="top">'+shownAmount+'</td>');
					}
					d.write('</td>');
					
				} else { // no quantity block
					if(belenusHome.visibleBasketFields[j] == belenusHome.PRICE_PROPERTIES[0] && belenusHome.PRICE_PROPERTIES[1] == true) { // if the show price flag is active(true)...
					//PRICE_PROPERTIES BLOCK
						var singlePrice = belenusHome.belenusBasket[getFieldPos(belenusHome.basketFields, belenusHome.visibleBasketFields[j])][i];
						var itemSumPrice = getItemSumPrice(singlePrice, amount);
						commonSumPrice += itemSumPrice; // summate
				
						d.write('<td align="right" valign="top">');
						d.write(priceParser(singlePrice));
						d.write('</td>');
						
						d.write('<td align="right" valign="top">');
						d.write(priceParser(itemSumPrice));
						d.write('</td>');					
						
					} else { // no quantity & no price block
					//other fields...
						if(belenusHome.visibleBasketFields[j] != belenusHome.PRICE_PROPERTIES[0] && belenusHome.visibleBasketFields[j] != belenusHome.QUANTITY_PROPERTIES[0]) {
	
							var isLink = "NO"; // "NO" because if i use false, js thinks that 0 & false is the same! And so it ignores the first entry...
							for(linkFields in belenusHome.JUMP_TO_CATALOG[2]) { // look if the field should have a link propertie.....
								if(	belenusHome.visibleBasketFields[j] == belenusHome.JUMP_TO_CATALOG[2][linkFields] &&
									belenusHome.belenusBasket[getFieldPos(belenusHome.basketFields, belenusHome.JUMP_TO_CATALOG[0])][i] != "") isLink = linkFields;
							}
							
							if(belenusHome.JUMP_TO_CATALOG[1] == true && isLink != "NO") {
								//do generate a <a href=""...> tag around the field....
								d.write('<td valign="top">');
								d.write('<a href="javascript:void(belenusHome.belLocateInCatalog(\''+belenusHome.belenusBasket[getFieldPos(belenusHome.basketFields, belenusHome.JUMP_TO_CATALOG[0])][i]+'\'))">'+belenusHome.belenusBasket[getFieldPos(belenusHome.basketFields, belenusHome.visibleBasketFields[j])][i]+'</a>');
								d.write('</td>');									
							} else {
								//without a link
								d.write('<td valign="top">');
								d.write(belenusHome.belenusBasket[getFieldPos(belenusHome.basketFields, belenusHome.visibleBasketFields[j])][i]);
								d.write('</td>');									
							}
						}			
					}
				}
			}
			d.write('</tr>');
		} // end of looping through the items (for)
		d.write('</table>');
		
		if(belenusHome.PRICE_PROPERTIES[1] == true) {
			var inclTax;
			if(belenusHome.basketTax.search(/\./) == -1) {
				inclTax=eval('1.'+belenusHome.basketTax);
			} else {
				inclTax=eval('1.'+belenusHome.basketTax.replace(/\./, ""));
			}		
			d.write('<table>');
			d.write('<tr>');
			d.write('<td width="100%" valign="top">'+belenusHome.ld['basketHeader_LSP_netto']+'</td>');
			d.write('<td align="right" valign="top">'+priceParser(commonSumPrice)+'</td>');
			d.write('</tr>');
			d.write('<tr>');
			d.write('<td valign="top">'+belenusHome.ld['basketHeader_Tax']+'</td>');
			d.write('<td align="right" valign="top">'+priceParser(priceRound((commonSumPrice/100)*belenusHome.basketTax))+'</td>');
			d.write('</tr>');			
			d.write('<tr>');
			d.write('<td valign="top">'+belenusHome.ld['basketHeader_LSPIncludeTax']+'</td>');
			d.write('<td align="right" valign="top">'+priceParser(priceRound(commonSumPrice*inclTax))+'</td>');
			d.write('</tr>');
			d.write('</table>');
		}
		
		// end paint table for items content
		d.write('</form>');
	}
}

function writeDate(){
	var monat = new Array("01","02","03","04","05","06","07","08","09","10","11","12");
	var heute=new Date();
	return heute.getDate()+ "." +monat[heute.getMonth()]+ "." +heute.getYear();
}


//**************************************************************************************************************************************************
// -submit basket &-paint submit fields methodes
//**************************************************************************************************************************************************

function sendBasket(mode) { // allowed params "server" & "email"
	if(belenusHome.belenusBasket[0].length>0) {
    if(mode == "server") {
  		if(belenusHome.oci_interface) {
  			belenusHome.sendOCIBasket(); // calls an other method which handels the way of sending to the sap interface, defined in oci_generator.js...
  		} else {
  			belenusHome.whereIsTheForm.document.forms['standardBasketForm4ServerSubmit'].submit();
  			belenusHome.delAllItems(false);
  			belenusHome.WM.closeWindow('printPopup');
  			belenusHome.WM.closeWindow('basketPopup');
  		}
  	} else {
      if(mode == "email") {
        belenusHome.whereIsTheForm.document.forms['standardBasketForm4EmailSubmit'].submit();
        belenusHome.delAllItems(false);
        belenusHome.WM.closeWindow('printPopup');
        belenusHome.WM.closeWindow('basketPopup');
        if(!belenusHome.includedOrPopupBasket) setTimeout("belenusHome.WM.closeWindow('basket')",1000);
        else setTimeout("belenusHome.WM.closeWindow(belenusHome.basketWinName+'Extra')",1000);
        //if(belenusHome.includedOrPopupBasket) belenusHome.document.getElementById("basketFrame").setAttribute("src",belenusHome.document.getElementById("basketFrame").getAttribute("src"));
      }
    } // no server submit
  } // empty basket
}


//**************************************************************************************************************************************************
// helping methodes 
//**************************************************************************************************************************************************

function getItemSumPrice(singlePrice, amount) {
	singlePrice = (singlePrice == null) ? 0 : parseFloat(singlePrice.replace(/,/,"."));
	amount = (amount == null) ? 1 : parseFloat(amount);
	return priceRound(singlePrice * amount);
}


function priceRound(value){
	return (Math.round(value*100) / 100);
}


function priceParser(value) {
	value+="";
	value = value.replace(/\./,",");
	var point = value.indexOf(",");
	if(point == -1) {
		value+=",00";
	} else {
		if(value.length-value.substring(0,point).length == 2) {
			value += "0";
		}
		if(value.length-value.substring(0,point).length > 2) {
			value = value.substring(0, point+3);
		}
	}
	return value;
}


function getFieldPos(atArray, fieldName) {
	for(kcuf in atArray) {
		if(atArray[kcuf] == fieldName) {
			return kcuf;
		}
	}
	return null;
}

