function Form(form) {


	var xmlhttp=tmt.CreateXMLHttp();
	if (!xmlhttp) return;
	
	var submit=null;
	for (var i=0; i<form.elements.length; i++) {
		var field=form.elements[i];
		if (field.type=='submit') {
			submit=field;
			submit.defaultValue=field.value;
			break;
		}
	}

	form.onsubmit=function() {
//		alert(this.action);
		if (submit) submit.value='Sparar...';
		var xml=GetFormXML();
		setTimeout(function() {
			Connect('post',xml,false);
			setTimeout(function() {if (submit) submit.value=submit.defaultValue;},1000)
		},1);
		return false;
	}


	Connect('get',GetFormXML(),true);

	function GetFormXML() {
//alert(form.action)
		var xml=new Array();
		xml.push('<form action="'+EntToRef(form.action)+'">');
		for (var i=0; i<form.elements.length; i++) {
			var field=form.elements[i];
			if (field.name) {
				field.disabled=true;
				//field.style.backgroundColor='graytext';
				xml.push('<field name="'+EntToRef(field.name)+'" value="'+EntToRef(field.value)+'"/>');
			}
		}
		xml.push('</form>');
		return xml;
	}

	function Connect(method,xml,async) {
/*
		var xml=null;
		if (document.implementation && document.implementation.createDocument) {
//			xml=document.implementation.createDocument('','',null);
			var objDOMParser = new DOMParser();
			xml= objDOMParser.parseFromString(x, "text/xml");
		}
		else if (window.ActiveXObject) {
			xml=new ActiveXObject("Microsoft.XMLDOM");//MSXML2.DOMDocument.3.0
			xml.loadXML(x);
 		}
		else return;
*/
		//alert(xmlhttp.readyState);

		xmlhttp.open('POST',GetBaseHRef()+'../../tmt.form?open&method='+method+'&url='+escape(''),async);
		xmlhttp.setRequestHeader('Content-Type','text/xml; charset=UTF-8');
		xmlhttp.onreadystatechange=(!async ? null : function() {if (xmlhttp.readyState==4) ParseResult(xmlhttp);});
		xmlhttp.send(encodeURIComponent('<?xml version="1.0" encoding="UTF-8"?>'+xml.join('\n')));
		if (!async) ParseResult(xmlhttp);
	}

	function ParseResult(xmlhttp) {
		try {
			Parse(xmlhttp.responseXML);
		} 
		catch(e) {
			alert('Error: '+e.message+'\n\nStatus: '+xmlhttp.status+'\n\n'+xmlhttp.getAllResponseHeaders()+'\n'+xmlhttp.responseText);
		}
	}

	function Parse(xml) {

		form.action=xml.documentElement.getAttribute("action");

		var nodes=xml.documentElement.childNodes;
		for (var i=0; i<nodes.length; i++) {
			var node=nodes[i];
			if (node.nodeType==1) {
				//node.normalize();
				var field=form.elements[node.getAttribute('name')];
				if (field) {
					field.value=node.getAttribute('value');
//					field.style.backgroundColor='';
					field.disabled=false;
				}
			}
		}
	}
}

function EntToRef(strText) {
	strText=strText.split('&').join('&amp;');
	strText=strText.split('<').join('&lt;');
	strText=strText.split('>').join('&gt;');
	strText=strText.split('"').join('&quot;');
	return strText;
}

function GetBaseHRef() {
	var eltBase=document.getElementsByTagName('base')[0];
	return (eltBase && eltBase.getAttribute('href') ? eltBase.getAttribute('href') : '');
}
