// global.snp
// 100

// 100-001
	var spzzchn=  "*+-./_@";

	var ident									= "HE9421HMD28Q";
	var isoEncode							= "iso-8859-1";
	var build									= "3.5.13";
	var merchantID						= "3Q==";
	var shopSelectId					= "knVLPji6wY4ylNksFEv5DqHZZgE9NTGem3wed0k9dC2SDzY=";
	var charSecCurrDelimiter	= "<br>&nbsp;";
  var boolPriceTaxIncl    	= true;
  var boolDisplTaxIncl    	= true;
	var useSSLforOrder				= false;
	var boolDisplSecCurr			= false;
	var minOrderValue					= 0;
	var boolDisplDefVariant		= true;

// 100-002
	function encryptTextData(txt){
		txt = escape(txt);
		txt = txt.replace(/\*/g, "%X0");
		txt = txt.replace(/\+/g, "%X1");
		txt = txt.replace(/\-/g, "%X2");
		txt = txt.replace(/\./g, "%X3");
		txt = txt.replace(/\//g, "%X4");
		txt = txt.replace(/\_/g, "%X5");
		txt = txt.replace(/\@/g, "%X6");
		txt = txt.replace(/\%/g, "_");
		return(txt);
		};
		
// 100-003
	function decryptTextData(txt){
		txt = txt.replace(/\_/g,"%");
		txt = txt.replace(/%X0/g, "*");
		txt = txt.replace(/%X1/g, "+");
		txt = txt.replace(/%X2/g, "-");
		txt = txt.replace(/%X3/g, ".");
		txt = txt.replace(/%X4/g, "/");
		txt = txt.replace(/%X5/g, "_");
		txt = txt.replace(/%X6/g, "@");
		txt = unescape(txt);
		return(txt);
		};

// 100-004
	function safeData() {
		if(self.name==""||self.name=="body"||self.name.indexOf("_3CXML_")!=-1) self.name = encryptTextData(XML.putSource())
		else{
			var w = window.open(location.href);
			w.name = encryptTextData(XML.putSource());
			window.close();
			};
		};

// 100-005	
	function loadData() {
		var validIndex = -1;
		var b = decryptTextData(self.name);
		validIndex = b.indexOf("<XML>");
		if(validIndex>-1){
			b = b.substring(0,b.lastIndexOf("</XML>"));
			intXMLSPos = b.indexOf("<XML>");intXMLEPos = b.indexOf(">",intXMLSPos);
			b = b.substring(0,intXMLSPos) + b.substring(intXMLEPos + 1);
			XML = new clsObject("XML");
			XML.getSource(b);
			};
		};

// 100-006	
	function putSourceValue(item,value){
		return " " + item + "=\"" + value + "\"";
		};

// 100-007	
	function replace(text,find,repl){
		var found = text.indexOf(find);
		var retVal= ""; var start = 0;
		while(found != -1){
			retVal += text.substring(start,found) +repl;
			start = found+find.length;
			found = text.indexOf(find,start);
			}
		retVal += text.substring(start,text.length);
		return retVal;
		};

// 100-008
	function identOTag(theSource,strCTagName,intCTagSPos,intCTagEPos){
		// find right first occurence of matching open Tag (OTag)
		var intOTagSPos = Math.max(theSource.indexOf("<" + strCTagName + ">"),
			theSource.indexOf("<" + strCTagName + " "));
		var tmpCTagSPos = -1;var tmpCTagEPos = -1;
		while(theSource.indexOf("<" + strCTagName + ">", intOTagSPos + 1)>0
			||theSource.indexOf("<" + strCTagName + " ",intOTagSPos + 1)>0){
			intOTagSPos = Math.max(theSource.indexOf("<" + strCTagName + ">", intOTagSPos + 1),
				theSource.indexOf("<" + strCTagName + " ", intOTagSPos + 1));
			};
		// identify length of OTag
		intOTagEPos = theSource.indexOf(">",intOTagSPos);
		// check if any corresponding CTags between this Tag and CTag
		if(theSource.indexOf("</" + strCTagName + ">", intOTagEPos)<intCTagSPos){
			tmpCTagSPos = theSource.indexOf("</" + strCTagName + ">", intOTagEPos);
			tmpCTagEPos = theSource.indexOf(">",tmpCTagSPos);
			theSource = theSource.substring(0,intOTagSPos) + theSource.substring(tmpCTagEPos + 1);
			intCTagSPos = theSource.lastIndexOf("</" + strCTagName + ">");
			intCTagEPos = intCTagSPos + ("</" + strCTagName + ">").length;
			intOTagSPos = identOTag(theSource,strCTagName,intCTagSPos,intCTagEPos)
			};
		return(intOTagSPos);
		};

// 100-009
	function TClsObjectPutSource(){
		var parseThis, rString;
		rString = "<" + this.clsObjName;
		for(var attribute in this){
			parseThis = true;
			for(var i=0;i<this.exceptions.length;i++) if(attribute==this.exceptions[i]) parseThis = false;
			if(parseThis) rString += putSourceValue(attribute,this[attribute]);
			};
		rString += ">";
		if(this.childNodes.length>0){
			for(var i=0;i<this.childNodes.length;i++) rString += this.childNodes[i].putSource();
			}
		else{ rString += this.getValue(); };
		rString += "</" + this.clsObjName + ">";
		return(rString);
		};

// 100-010
	function TClsObjectPutValue(aValue){
		this.clsObjValue = aValue;
		};
		
// 100-011
	function TClsObjectGetValue(){
		return(this.clsObjValue);
		};

// 100-012
	function TClsObjectAddObject(anObject){
		this.childNodes[this.childNodes.length] = anObject;
		return(anObject);
		};

// 100-013
	function TClsObjectAddNode(aNodeName){
		var intChildNodes;
		intChildNodes = this.childNodes.length;
		this.childNodes[intChildNodes] = new clsObject(aNodeName);
		return(this.childNodes[intChildNodes]);
		};	
		
// 100-014
	function TClsObjectAddMethod(aMethod,aMethodName){
		this[aMethodName] = aMethod;
		this.exceptions[this.exceptions.length] = aMethodName;
		}
		
// 100-015
	function TClsObjectGetFirstItem(aName){
		for(var i=0;i<this.childNodes.length;i++){
			if(this.childNodes[i].clsObjName==aName){
				this.itemIndex = new Array(i,aName);
				return this.childNodes[i];
				};
			};
		return null;
		};

// 100-016
	function TClsObjectGetNextItem(){
		for(var i=this.itemIndex[0] + 1;i<this.childNodes.length;i++){
			if(this.childNodes[i].clsObjName==this.itemIndex[1]){
				this.itemIndex = new Array(i,this.itemIndex[1]);
				return this.childNodes[i];
				};
			};
		return null;
		};

// 100-017
	function TClsObjectDeleteItems(aName){
		tmpChildNodes = new Array();
		for(var i=0;i<this.childNodes.length;i++){
			if(this.childNodes[i].clsObjName!=aName) tmpChildNodes[tmpChildNodes.length] = this.childNodes[i];
			};
		this.childNodes = tmpChildNodes;
		};
	
// 100-018
	function TClsObjectGetSource(theSource){
		while(theSource.lastIndexOf("</")>-1){
			var intCTagSPos = theSource.lastIndexOf("</");
			var intCTagEPos = theSource.indexOf(">",intCTagSPos);
			var strCTagName = theSource.substring(intCTagSPos + 2, intCTagEPos);
			var intOTagSPos = identOTag(theSource,strCTagName,intCTagSPos,intCTagEPos);
			var intOTagEPos = theSource.indexOf(">",intOTagSPos);
			var tmpChildNodes = this.childNodes;
			this.childNodes = new Array();
			this.childNodes[0] = new clsObject(strCTagName);
			this.childNodes[0].getSource(theSource.substring(intOTagEPos + 1, intCTagSPos));
			for(var i=0;i<tmpChildNodes.length;i++) this.childNodes[this.childNodes.length] = tmpChildNodes[i];
			var strAttributes  = theSource.substring(intOTagSPos + strCTagName.length + 1, intOTagEPos);
			if(strAttributes.length>0){
				while(strAttributes.charAt(0)==" ") strAttributes = strAttributes.substring(1);
				while(strAttributes.charAt(strAttributes.length - 1)==" ") strAttributes = strAttributes.substring(0,strAttributes.length - 1);
				var intLastValueSPos = strAttributes.indexOf('="');
				var intLastValueEPos = -1;
				if(intLastValueSPos>-1) var doReplace = true
				else var doReplace = false;
				while(doReplace){
					intLastValueEPos = strAttributes.indexOf('"',intLastValueSPos + 2);
					strAttributes = strAttributes.substring(0,intLastValueSPos)
						+ replace(strAttributes.substring(intLastValueSPos,intLastValueEPos)," ","%20")
						+ strAttributes.substring(intLastValueEPos);
					//intLastValueSPos = strAttributes.indexOf('="',intLastValueSPos + 1)
					intLastValueSPos = strAttributes.indexOf('="', intLastValueEPos + 1);
					if(intLastValueSPos==-1) doReplace = false;
					};
				var arrAttributes = strAttributes.split(" ");
				for(var i=0;i<arrAttributes.length;i++) this.childNodes[0][arrAttributes[i].split("=")[0]] = unescape(replace(arrAttributes[i].split("=")[1],'"',""));
				};
			theSource = theSource.substring(0,intOTagSPos) + theSource.substring(intCTagEPos + 1);
			};
		if(theSource!=""&&theSource!=null) this.clsObjValue = theSource;
		};

// 100-019
	function clsObject(clsObjName){
		this.clsObjName	= clsObjName
		this.clsObjValue = "";
		this.exceptions	= new Array("clsObjName","clsObjValue","exceptions","childNodes","putValue","getValue","addObject","addNode","addMethod","putSource","getSource","itemIndex","getFirstItem","getNextItem","deleteItems");
		this.childNodes	= new Array();
		this.putValue		= TClsObjectPutValue;
		this.getValue		= TClsObjectGetValue;
		this.addObject		= TClsObjectAddObject;
		this.addNode		= TClsObjectAddNode;
		this.addMethod		= TClsObjectAddMethod;
		this.putSource 	= TClsObjectPutSource;
		this.getSource 	= TClsObjectGetSource;
		this.itemIndex		= new Array();
		this.getFirstItem = TClsObjectGetFirstItem;
		this.getNextItem = TClsObjectGetNextItem;
		this.deleteItems = TClsObjectDeleteItems;
		};

// 100-020
	function setup(){
		XML = new clsObject("XML");
		xmlOrder = XML.addNode("Order");
			xmlUserDefCtrls = xmlOrder.addNode("UserDefCtrls");
			xmlUserDefCtrls = xmlOrder.addNode("StandardCtrls");
			xmlOrderHeader = xmlOrder.addNode("OrderHeader");
				xmlOrderHeader.Origin											=	"SMEE";
				xmlOrderHeader.Project										=	build;
				xmlOrderHeader.PriceEntryGross						=	(true) ? "1" : "0";
				xmlOrderHeader.PriceDisplayGross					=	(true) ? "1" : "0";
				xmlOrderHeader.merchantID									= "3Q==";
				xmlOrderHeader.LanguageFKID								= ("de"=="") ? "en-EN" : "de";
				xmlOrderHeader.isoEncode									= "iso-8859-1";
				xmlOrderHeader.shopSelectId								= encryptTextData(shopSelectId);
				xmlOrderHeader.IsSCAvailable							= (false) ? "1" : "0";
				xmlOrderHeader.EmailPurchase							= "info@quiltprofi.de";
				xmlOrderHeader.fileExtension							= "htm";
				xmlOrderHeader.siteDirectory							= "";
		xmlConfig = XML.addNode("Config");
			xmlConfig.addNode("QueryStringData");
			xmlConfig.taxarea = 0;
			xmlConfig.BillToDataEntered = "false";
			xmlConfig.ShipToDataEntered = "false";
			xmlConfig.ident = ident;
			xmlConfig.isoEncode = isoEncode;
			xmlConfig.fileExtension = "htm";
			xmlConfig.skipShippingMethod = "false";
			xmlConfig.navIndex = "null";
			xmlConfig.affiliateId = "";
			xmlConfig.cartSubTotal = 0;
		myOSearchEngine = xmlConfig.addNode("SearchEngine");
			myOSearchEngine.term = null;
			myOSearchEngine.mode = 0;
			myOSearchEngine.maxPrice = -1;
			myOSearchEngine.init = "true";
			myOSearchEngine.ByCategory = "0";
			myOSearchEngine.categoryId = "null";
			myOSearchEngine.categoryIndex = "null";
		myOOrder = XML.addNode("OOrder");
		myOOrderHeader = myOOrder.addNode("OrderHeader");
			myOComments = myOOrderHeader.addNode("Comments");
				myOComments.addNode("Comment");
		objLeadCurrency = xmlConfig.addNode("LCurrOptions");
			objLeadCurrency.charCurrency			= "EUR";
			objLeadCurrency.numCurrRate				= 1;
			objLeadCurrency.numRefCurrRate		= 1;
			objLeadCurrency.numOfAftDec				= 2;
			objLeadCurrency.charDecDelimiter	= ",";
			objLeadCurrency.numGroupDelimiter	= 3;
			objLeadCurrency.charGroupDelimiter= ".";
			objLeadCurrency.currPosValue			= "&SMcurr; &SMamount;";
			objLeadCurrency.currNegValue			= "&SMcurr; -&SMamount;";
			objLeadCurrency.currRoundFive			= "false";
		objPriCurrency = xmlConfig.addNode("PCurrOptions");
			objPriCurrency.charCurrency				= "EUR";
			objPriCurrency.numCurrRate				= 1;
			objPriCurrency.numRefCurrRate			= 1;
			objPriCurrency.numOfAftDec				= 2;
			objPriCurrency.charDecDelimiter		= ",";
			objPriCurrency.numGroupDelimiter	= 3;
			objPriCurrency.charGroupDelimiter	= ".";
			objPriCurrency.currPosValue				= "&SMcurr; &SMamount;";
			objPriCurrency.currNegValue				= "&SMcurr; -&SMamount;";
			objPriCurrency.currRoundFive			= "false";
		objSecCurrency = xmlConfig.addNode("SCurrOptions");
			objSecCurrency.charCurrency				= "DEM";
			objSecCurrency.numCurrRate				= 1.95583;
			objSecCurrency.numRefCurrRate			= 1;
			objSecCurrency.numOfAftDec				= 2;
			objSecCurrency.charDecDelimiter		= ",";
			objSecCurrency.numGroupDelimiter	= 3;
			objSecCurrency.charGroupDelimiter	= ".";
			objSecCurrency.currPosValue				= "&SMcurr; &SMamount;";
			objSecCurrency.currNegValue				= "&SMcurr; -&SMamount;";	
			objSecCurrency.currRoundFive			= "false";
		objWeight = xmlConfig.addNode("WeightOptions");
			objWeight.charSymbol							= "g";
			objWeight.numOfAftDec							= 2;
			objWeight.charDecDelimiter				= ",";
			objWeight.numGroupDelimiter				= 3;
			objWeight.charGroupDelimiter			= ".";
			objWeight.currPosValue						= "&SMamount; &SMsymb;";
			objWeight.currNegValue						= "";
		xmlOrderHeader.CurrencyLeadSymbol					= objLeadCurrency.charCurrency;
		xmlOrderHeader.CurrencyLeadExRate					= objLeadCurrency.numCurrRate;
		xmlOrderHeader.CurrencyLeadExRefRate			= objLeadCurrency.numRefCurrRate;
		xmlOrderHeader.CurrencyLeadNumDec					= objLeadCurrency.numOfAftDec;
		xmlOrderHeader.CurrencyLeadStrDec					= objLeadCurrency.charDecDelimiter;
		xmlOrderHeader.CurrencyLeadNumGroup				= objLeadCurrency.numGroupDelimiter;
		xmlOrderHeader.CurrencyLeadStrGroup				= objLeadCurrency.charGroupDelimiter;
		xmlOrderHeader.CurrencyLeadRoundFive			= objLeadCurrency.currRoundFive;
		xmlOrderHeader.CurrencyPriSymbol					= objPriCurrency.charCurrency;
		xmlOrderHeader.CurrencyPriExRate					= objPriCurrency.numCurrRate;
		xmlOrderHeader.CurrencyPriExRefRate				= objPriCurrency.numRefCurrRate;
		xmlOrderHeader.CurrencyPriNumDec					= objPriCurrency.numOfAftDec;
		xmlOrderHeader.CurrencyPriStrDec					= objPriCurrency.charDecDelimiter;
		xmlOrderHeader.CurrencyPriNumGroup				= objPriCurrency.numGroupDelimiter;
		xmlOrderHeader.CurrencyPriStrGroup				= objPriCurrency.charGroupDelimiter;
		xmlOrderHeader.CurrencyPriRoundFive				= objPriCurrency.currRoundFive;
		xmlOrderHeader.CurrencySecSymbol					= objSecCurrency.charCurrency;
		xmlOrderHeader.CurrencySecExRate					= objSecCurrency.numCurrRate;
		xmlOrderHeader.CurrencySecExRefRate				= objSecCurrency.numRefCurrRate;
		xmlOrderHeader.CurrencySecNumDec					= objSecCurrency.numOfAftDec;
		xmlOrderHeader.CurrencySecStrDec					= objSecCurrency.charDecDelimiter;
		xmlOrderHeader.CurrencySecNumGroup				= objSecCurrency.numGroupDelimiter;
		xmlOrderHeader.CurrencySecStrGroup				= objSecCurrency.charGroupDelimiter;
		xmlOrderHeader.CurrencySecRoundFive				= objSecCurrency.currRoundFive;
		safeData();
	};
////////////////////////////////////////////////////////////////////////////////////////////////////////

// 100-021
	function getElementByID(pNode, id){
	var mNode = null;
	var tNode = null;
		if(pNode.id==id) mNode = pNode
		else for(var i=0; i<pNode.childNodes.length; i++){
			tNode = getElementByID(pNode.childNodes[i], id);
			if(tNode!=null){
				mNode = tNode;
				break;
				};
			};
		return(mNode);
		};

// 100-023
	function setGroupDelimiter(amount, delimiter, count){
	var rVal = "";
		for(var i=0; i<amount.length; i++){
			if( ( i % count == 0 ) && ( i ) != 0 ) rVal = delimiter + rVal;
			rVal = amount.charAt(amount.length - 1 - i) + rVal;
			};
		if(rVal.charAt(rVal.length - 1) == "delimiter") rVal = rVal.substring(0, rVal.length - 1);
		if(rVal.charAt(0) == delimiter) rVal = rVal.substring(1);
		return(rVal);
		};
		
// 100-022
// Formats (doesn't calculate ) a given Currency Value for specified Currency ( no decimal or group delimiters)
	function TFormatCurrencyValue(aNumber, objCurrency){
		aNumber = aNumber * Math.pow(10,parseInt(objCurrency.numOfAftDec) + 1);
		aNumber = parseInt(aNumber) / 10;
		aNumber = Math.round(aNumber);
		aNumber = aNumber / Math.pow(10,parseInt(objCurrency.numOfAftDec));
		return(aNumber)
		};

// Calculates Correct Currency Value for specified Currency
	function calculateCurrencyAmount(aNumber, objCurrency){
		aNumber = aNumber / parseFloat(objCurrency.numRefCurrRate) * parseFloat(objCurrency.numCurrRate);
		if(objCurrency.currRoundFive == "true") aNumber = parseInt(aNumber*20+0.5)/20;
		return(aNumber)
		};
		
// Combines the above two functions
	function TCalcCurrencyFormat(aNumber, objCurrency){
		aNumber = calculateCurrencyAmount(aNumber, objCurrency);
		aNumber = TFormatCurrencyValue(aNumber, objCurrency);
		return(aNumber);
		};


// 100-024
// Formats & calculates a given Currency Value for specified Currency ( no currency symbol )
	function TFormatCurrencyOnly(aNumber,objCurrency){
		aNumber = aNumber / parseFloat(objCurrency.numRefCurrRate) * parseFloat(objCurrency.numCurrRate);
		if(aNumber>=0) currValue = objCurrency.currPosValue
		else{
			currValue = objCurrency.currNegValue;
			aNumber = Math.abs(aNumber);
			};
		if(objCurrency.currRoundFive == "true") aNumber = parseInt(aNumber*20+0.5)/20;
		aNumber = TFormatCurrencyValue(aNumber, objCurrency);
		if(aNumber.toString().indexOf(".")==0) aNumber = "0" + aNumber;
		var regExpAmount = /([0-9]+)(.([0-9]*))*/;
		regExpAmount.exec(aNumber);
		var amountBeforeDec = RegExp.$1
		var amountAfterDec = RegExp.$3
		amountBeforeDec = setGroupDelimiter(amountBeforeDec, objCurrency.charGroupDelimiter, objCurrency.numGroupDelimiter);
		while(amountAfterDec.length<parseInt(objCurrency.numOfAftDec)) amountAfterDec += "0";
		aText = currValue.replace("&SMamount;", amountBeforeDec + objCurrency.charDecDelimiter + amountAfterDec);
		aText = aText.replace("&SMcurr;", ""); 
		return(aText)
		};
		
// 100-025
// Formats & calculates a given Currency Value for specified Currency including currency symbol
	function TFormatCurrency(aNumber, objCurrency){
		aNumber = aNumber / parseFloat(objCurrency.numRefCurrRate) * parseFloat(objCurrency.numCurrRate);
		if(aNumber>=0) currValue = objCurrency.currPosValue
		else{
			currValue = objCurrency.currNegValue;
			aNumber = Math.abs(aNumber);
			};
		if(objCurrency.currRoundFive == "true") aNumber = parseInt(aNumber*20+0.5)/20;
		aNumber = TFormatCurrencyValue(aNumber, objCurrency);
		if(aNumber.toString().indexOf(".")==0) aNumber = "0" + aNumber;
		var regExpAmount = /([0-9]+)(.([0-9]*))*/;
		regExpAmount.exec(aNumber);
		var amountBeforeDec = RegExp.$1
		var amountAfterDec = RegExp.$3
		amountBeforeDec = setGroupDelimiter(amountBeforeDec, objCurrency.charGroupDelimiter, objCurrency.numGroupDelimiter);
		while(amountAfterDec.length<parseInt(objCurrency.numOfAftDec)) amountAfterDec += "0";
		aText = currValue.replace("&SMamount;", amountBeforeDec + objCurrency.charDecDelimiter + amountAfterDec);
		aText = aText.replace("&SMcurr;", objCurrency.charCurrency); 
		return aText;
		};

// 100-026
	function TFormatNumbers(aNumber, objNumber){
		if(aNumber>=0) currValue = objNumber.currPosValue
		else{
			currValue = objNumber.currNegValue;
			aNumber = Math.abs(aNumber);
			};
		if(aNumber.toString().indexOf(".")==0) aNumber = "0" + aNumber;
		aNumber = TFormatCurrencyValue(aNumber, objNumber);
		var regExpAmount = /([0-9]+)(.([0-9]*))*/;
		regExpAmount.exec(aNumber);
		var amountBeforeDec = RegExp.$1
		var amountAfterDec = RegExp.$3
		amountBeforeDec = setGroupDelimiter(amountBeforeDec, objNumber.charGroupDelimiter, objNumber.numGroupDelimiter);
		while(amountAfterDec.length<parseInt(objNumber.numOfAftDec)) amountAfterDec += "0";
		aText = currValue.replace("&SMamount;", amountBeforeDec + objNumber.charDecDelimiter + amountAfterDec);
		aText = aText.replace("&SMsymb;", objNumber.charSymbol); 
		return aText;
		};

// 100-027-A
	function ScriptInclude(){
		this.src = "";
		this.args = new Array();
		this.set = ScriptInclude_Set;
		};

// 100-027-B
	function ScriptInclude_Set(){
		var tmpHTML = "";
		var tmpArgs = "";
		tmpHTML = "<script type='text\/javascript'"
			+ " src='" + this.src + "?";
		for(var i=0; i<this.args.length; i++){
			tmpArgs += this.args[i].replace("/","\/") + "&";
			};
		tmpHTML += tmpArgs;
		tmpHTML	+= "'><\/script>";
		document.write(tmpHTML);
		};
		
// 100-028
	function createOrderID(){
	var oidDate, oidYear, oidMonth, oidDay, OID;
		oidDate = new Date();
		oidYear = oidDate.getYear().toString();
			oidYear = oidYear.substring(oidYear.length-2);
		oidMonth = (oidDate.getMonth() + 1).toString();
			if(oidMonth.length<2) oidMonth = "0" + oidMonth;
		oidDay = oidDate.getDate().toString();
			if(oidDay.length<2) oidDay = "0" + oidDay;
		OID = oidYear + oidMonth + oidDay + "-"
		for(var i=0; i<5; i++) OID += parseInt(Math.random()*10); 
		return(OID);
		};

// 100-029
	var taxarea = new Array();	
	
		taxarea[0] = new Array("DE",0,19,7,0,0);
	
		taxarea[1] = new Array("EU",1,0,0,0,0);
	
		taxarea[2] = new Array("Ihr Land",2,16,7,9.8,5);
	

// 100-030
// Shared SSL Path
// if sharedSSLPath does not equal an empty string, then
// the path will be used for SSL encrypted communications	
	var sharedSSLPath = "";
		
// 100-031
	function requestSSL(strAddress){
		safeData();
		var myPath = location.pathname.substring(0,location.pathname.lastIndexOf("/"));
		if(location.protocol!="file:"){
			if(useSSLforOrder){
				if(sharedSSLPath!="") location.href = sharedSSLPath + strAddress
				else location.href = "https://" + location.hostname + myPath + "/" + strAddress;
				}
			else location.href=strAddress;
			}
		else location.href=strAddress;
		};

// 100-032
	function valNumber(aValue,minValue,aMessage){
		var rValue = ""; var setMsg = false;
		for(var i=0;i<aValue.length;i++){
			if(isNaN(aValue.charAt(i))){
				if(rValue==""){ rValue=minValue; setMsg = true; };
				if(parseInt(rValue)<parseInt(minValue)){ rValue=minValue; setMsg = true; };
				if(setMsg&&aMessage!=""&&aMessage!=null) alert(aMessage);
				return rValue;
				}
			else rValue += aValue.charAt(i);
			};
		if(rValue==""){ rValue=minValue; setMsg = true; }
		else if(parseInt(rValue)<parseInt(minValue)){ rValue=minValue; setMsg = true; };
		if(setMsg&&aMessage!=""&&aMessage!=null) alert(aMessage);
		return rValue;
		};

// 100-033
	function getCookieValueFor(pPar){
	var mCArr = new Array();
	var mCVal	= null;
	var mCName = "";
	var mCStr = "";
		mCStr = getSmartCookie();
		if(mCStr!=null) mCArr = mCStr.split(";");
		for(var i=0; i<mCArr.length; i++){
			if(mCArr[i].indexOf("=")>-1){
				mCName = mCArr[i].split("=")[0];
				while(mCName.charAt(0)==" ") mCName = mCName.substring(1);
				if(mCName==pPar) mCVal = decryptTextData(mCArr[i].split("=")[1]);
				};
			};
		return(mCVal);
		};

// 100-034
	function setCookieValue(pPar, pVal){
	var mAppend = true;
	var mCArr = new Array();
	var mCName = "";
	var mCStr = "";
	var mNCStr = "";
		mCStr = getSmartCookie();
		if(mCStr!=null) mCArr = mCStr.split(";")
		else mCStr = "";
		if(getCookieValueFor(pPar)!=null) mAppend = false;
		// append new key and value?
		if(mAppend&&pVal!=null){
			mNCStr += mCStr + ";" + pPar + "=" + encryptTextData(pVal);
			}
		// replace existing key value
		else if(!mAppend&&pVal!=null){
			for(var i=0; i<mCArr.length; i++){
				if(mCArr[i].indexOf("=")>-1){
					mCName = mCArr[i].split("=")[0];
					while(mCName.charAt(0)==" ") mCName = mCName.substring(1);
					if(mCName==pPar) mNCStr += ";" + mCName + "=" + encryptTextData(pVal)
					else mNCStr += ";" + mCArr[i];
					};
				};
			}
		// delete existing key
		else if(!mAppend&&pVal==null){
			for(var i=0; i<mCArr.length; i++){
				if(mCArr[i].indexOf("=")>-1){
					mCName = mCArr[i].split("=")[0];
					while(mCName.charAt(0)==" ") mCName = mCName.substring(1);
					if(mCName!=pPar) mNCStr += ";" + mCArr[i];
					};
				};
			};
		// save cookie value
		while(mNCStr.charAt(0)==";") mNCStr = mNCStr.substring(1);
		setSmartCookie(mNCStr);
		};
		
// 100-035
	function getSmartCookie(){
	var mCStr = ""; var mCArr = new Array(); var mRVal = null; var mPName = "";
		if(document.cookie){
			mCStr = document.cookie;
			if(mCStr!=null) mCArr = mCStr.split(";");
			for(var i=0; i<mCArr.length; i++){
				if(mCArr[i].indexOf("=")!=-1){
					mPName = mCArr[i].split("=")[0];
					while(mPName.indexOf(" ")==0) mPName = mPName.substring(1);
					if(mPName=="SmartStoreDotBiz3"){
						if(mCArr[i].split("=")[1]!=null) mRVal = decryptTextData(mCArr[i].split("=")[1]);
						};
					};
				};
			};
		return(mRVal);
		};
	
// 100-036
	function setSmartCookie(pCookieVal){
		document.cookie = "SmartStoreDotBiz3=" + encryptTextData(pCookieVal) + ";expires=" + mCExpDate.toGMTString();
		};

// 100-037
	function resetSmartCookie(){
		document.cookie = "SmartStoreDotBiz3=;expires=0";
		};

// 100-038
	function saveFormValues(){
	var mRetVal = false;
		if(getCookieValueFor("SaveFormValues")=="1") mRetVal = true
		else if(getElementByID(xmlOrder,"SaveFormValues")!=null){
			if(getElementByID(xmlOrder,"SaveFormValues").checked=="1") mRetVal = true;
			}
		return(mRetVal);
		};

	function getParameterFromURL(name){
	var arrParameters = new Array();
	var mSearch = "";
	var mResult = "";
	mSearch = location.search;
		if(mSearch.length>0){
			mSearch = mSearch.substring(1);
			arrParameters = mSearch.split("&");
			for(var i=0; i<arrParameters.length; i++){
				if(arrParameters[i].split("=")[0].toLowerCase()==name.toLowerCase()){
					mResult = arrParameters[i].split("=")[1];
					};
				};
			return(unescape(mResult));
			}
		else return("");
		};

// 100-039
	var XML = new clsObject("XML")
	loadData();
	if(XML.getFirstItem("Order")==null) setup()
	else{
		if(XML.getFirstItem("Config").ident!=ident) setup();
		};
		
// 100-040
	var mCExpDate = new Date();
	var mThirtyDays = mCExpDate.getTime() + 2592000000;
	mCExpDate.setTime(mThirtyDays);
	
	var xmlOrder									= XML.getFirstItem("Order");
	var xmlConfig									= XML.getFirstItem("Config");
	var xmlOHeader								= xmlOrder.getFirstItem("OrderHeader");
		
	if(getParameterFromURL("affiliateid")!="") xmlConfig.affiliateId = getParameterFromURL("affiliateid");

	// set OrderID if not specified yet
	if(xmlConfig.OID == ""||xmlConfig.OID == null){
		var myOID;
		myOID = createOrderID();
		xmlConfig.OID = myOID;
		xmlOHeader.OrderID = myOID;
		};

	objLeadCurrency						= xmlConfig.getFirstItem("LCurrOptions");
	objPriCurrency						= xmlConfig.getFirstItem("PCurrOptions");
	objSecCurrency						= xmlConfig.getFirstItem("SCurrOptions");
	objWeight									= xmlConfig.getFirstItem("WeightOptions");

	var isStartDocument = false;
	
	// BROWSER CHECK
	var SM_DHTML = 0, SM_DOM = 0, SM_MS = 0, SM_NS = 0;

	function DHTML_init() {
		if(document.getElementById) {
			SM_DHTML = 1;
			SM_DOM = 1;
			};
		if(document.all) {
			SM_DHTML = 1;
			SM_MS = 1;
			};
		if(window.netscape && window.screen && !SM_DOM) {
			SM_DHTML = 1;
			SM_NS = 1;
			};
		};
	
	DHTML_init();
	

