function SForm2TXT(){
	this.version = "1.0";
	};

SForm2TXT.prototype.decode = function($dt){
var $f = $ds = $s = $dv = $fe = $o = null;
	if($dt.indexOf("=")){
		$f = document.forms[$dt.substring(0, $dt.indexOf("="))];
		if($f!=null){
			$dt = SX_uEsc($dt.substring($dt.indexOf("=") + 1));
			$ds = $dt.split("##");
			for(var i=0; i<$ds.length; i++){
				$s = $ds[i];
				$dv = $s.split("|");
				for(var j=0; j<$dv.length; j++)  $dv[j] = SX_uEsc($dv[j].replace(/_X8/g, ";"));
				$fe = $f.elements[$dv[0]];
				if($fe!=null){
					if($fe.type==$dv[1]){
						switch($fe.type){
							case "checkbox":
								$fe.checked = ($dv[2]=="true");
								break;
							case "select-one":
								for(var j=0; j<$fe.options.length; j++){
									$o = $fe.options[j];
									if($o.value==$dv[2]){
										$o.selected = true;
										if($dv[0]=="BILLTO_COUNTRY") SMShop.setActiveRegionByISOCode($dv[2]);
										}
									else $o.selected = false;
									};
								break;
							case "select-multiple":
								for(var j=0; j<$fe.options.length; j++){
									$o = $fe.options[j];
									$o.selected = false;
									for(var k=2; k<$dv.length; k = k + 2){
										if($dv[k]==$o.value){
											$o.selected = true;
											break;
											};
										};
									};
								break;
							default:
								$fe.value = $dv[2];
								break;
							};
						}
					else if($fe.length!=0){
						for(var j=0; j<$fe.length; j++){
							if($fe[j].type==$dv[1]) $fe[j].checked = ($fe[j].value==$dv[2]);
							};
						};
					};
				};
			};
		};	
	};

SForm2TXT.prototype.encodeElement = function(){
var $dt = "", $ag = arguments;
	for(var i=0; i<$ag.length; i++)
		$dt += (($dt!="") ? "|" : "") + SX_esc($ag[i]).replace(/;/g, "_X8");
	return($dt);
	};

SForm2TXT.prototype.writeToCookie = function($f){
var $dt = new Date();
	$dt.setTime($dt.getTime() + 2592000000);
	document.cookie = this.encode($f) + ";expires=" + $dt.toGMTString();
	};
	
SForm2TXT.prototype.readFromCookie = function($n){
var $t = this, $data = document.cookie, $found = false;
	$data = $data.split(";")
	for(var i=0; i<$data.length; i++){
		while($data[i].charAt(0)==" ") $data[i] = $data[i].substring(1);
		if($data[i].substring(0, $n.length)==$n){
			$data = $data[i];
			$found = true; break;
			};
		};
	if($found){
		$t.decode($data);
		};
	};

SForm2TXT.prototype.encode = function($f){
var $t = this, $dt = "", $o = null, $ag = null, $e = null;
	for(var i=0; i<$f.elements.length; i++){
		$e = $f.elements[i];
		if($e.type!="button"&&$e.type!="submit"&&$e.type!="reset"){
			if($e.type=="radio"){
				if($e.checked){
					if($dt!="") $dt += "##";
					$dt += $t.encodeElement($e.name, $e.type, $e.value, $e.title);
					};
				}
			else{
				if($dt!="") $dt += "##";
				switch($e.type){
					case "checkbox":
						$dt += $t.encodeElement($e.name, $e.type, (($e.checked) ? "true" : "false"), (($e.checked) ? "Ja" : "Nein"));
						break;
					case "select-one":
						$o = $e.options[$e.options.selectedIndex];
						$dt += $t.encodeElement($e.name, $e.type, $o.value, $o.text);
						break;
					case "select-multiple":
						$ag = new Array();
						$ag[0] = $e.name;
						$ag[1] = $e.type;
						for(var j=0; j<$e.options.length; j++){
							$o = $e.options[j];
							if($o.selected){
								$ag[$ag.length] = $o.value;
								$ag[$ag.length] = $o.text;
								};
							};
						$dt += $t.encodeElement.apply(null, $ag);
						break;
					default:
						$dt += $t.encodeElement($e.name, $e.type, $e.value);
						break;
					};
				};
			};
		};
	$dt = $f.name + "=" + SX_esc($dt);
	return($dt);
	};

var Form2TXT = new SForm2TXT();