function visamatningar(antal,selected) {
	if (!selected) {
		selected = 1;
	}

	matningar = document.getElementById("vmatningar");
	htmldata = "";
	for (i = 1; i <= antal; i++) {
		if (i == selected) {
			htmldata += "<a class=\"matningarkanpp\" style=\"font-weight: bold;\" href=\"javascript:bytmatindex(" + i + ")\">" + i + "</a>";
		} else {
			htmldata += "<a class=\"matningarkanpp\" href=\"javascript:bytmatindex(" + i + ")\">" + i + "</a>";
		}
	}
	matningar.innerHTML = htmldata;
}

function checkForInt(field,evt) {
	var e = evt
	if(window.event){ // IE
		var charCode = e.keyCode;
	} else if (e.which) { // Safari 4, Firefox 3.0.4
		var charCode = e.which
	}
//	if (field.value.length == 4) {
//		return false;
//	}
	if (charCode == 44 || charCode == 46) {
		if (field.value.length == 1) {
			return true;
		}
	}
	if (charCode > 47 && charCode < 58)
	return true;
	if (charCode == 13) {
		var i;
		for (i = 0; i < field.form.elements.length; i++)
			if (field == field.form.elements[i])
				break;
		i = (i + 1) % field.form.elements.length;
		field.form.elements[i].focus();
		field.form.elements[i].select();
//		ddebug(field.form.elements[i].value);
	}
	return false;
}


function assyncsaveform(aparams) {
//	document.body.style.cursor = "wait";
	formdata = formtostring("tustor");
	if (aparams) {
		formdata = "&"+aparams;
	}
	ddebug("async save form: " + formdata);
//	ddebug("async save form");
	CMloadXMLDocSync("/disco/cmds.php",formdata,nullhandlersave);

}
function assyncsaveanccloseform(aparams) {

	formdata = formtostring("tustor");
	if (aparams) {
		formdata = "&"+aparams;
	}
	CMloadXMLDocSync("/disco/cmds.php",formdata,nullhandlersave);

}

function changesubform(nummer) {
	var x = document.getElementById("mvalues");
	if (x) {
		var i = x.getElementsByTagName("input");
		var antal = i.length;
		for (var c = 0; c < antal; c++) {
			spliresult = i[c].name.split("__");
			i[c].name = "__tuvalues__" + nummer + "__" + spliresult[spliresult.length-1];
		}
	}
}

function loadmatning(nummer) {
	// dss value 20001 select avdrag,testmatning,C_100,C_80,C_40,M_100,M_80,M_40,Y_100,Y_80,Y_40,K_100,K_80,K_40,Svartref,Reg_avvik_C,Reg_avvik_M,Reg_avvik_Y,Reg_avvik_K,matindex,Noteringar,parentid,id from tuvalues where parentid = $pid and matindex = $index limit 0,1
	var idobj = getsingelformvalue("tustor","id");
	changesubform(nummer);
	CMloadXMLDocSync("/disco/cmds.php","ondnode=80&jsfunction=loadmatning&targetform=tustor&targetprefix=__tuvalues__"+nummer+"__&depcmd=queryxmldb&dssvalue=20001&pid="+idobj+"&index="+nummer,xmlload);
	ddebug("SET INDEX TO: " + nummer);
	var m = getsingelformobject("tustor","__tuvalues__" + nummer + "__" + "matindex");
	if (m) {
		m.value = nummer;
	}
	var r = getsingelformobject("tustor","__tuvalues__" + nummer + "__" + "parentid");
	if (r) {
		r.value = idobj;
	}
	
	
}

function bytmatindex(nummer) {
//	assyncsaveform();
	ddebug("Changesubform: " + nummer);
	changesubform(nummer);
	visamatningar(document.getElementById("ex").value,nummer);
	loadmatning(nummer);
	
//	ddebug("assyncsaveform end");
//	loadmatning(nummer);
//	ddebug("loadmatning end");
}


function loadsenastematning(trycker) {
	CMloadXMLDocSync("/disco/cmds.php","ondnode=80&jsfunction=loadsenastematning&targetform=tustor&targetprefix&depcmd=queryxmldb&dssvalue=20003&tryckare="+trycker,xmlload);
}

function nymatning() {
		CMloadXMLDocSync("/disco/cmds.php","ondnode=80&depcmd=queryxmldb&dssvalue=20002"+id,nullhandler);
}


function loadcurrentmatning(id) {
		ddebug("laod matning nummer: " + id);
		CMloadXMLDocSync("/disco/cmds.php","ondnode=80&jsfunction=loadcurrentmatning&targetform=tustor&targetprefix=&depcmd=queryxmldb&dssvalue=20000&id="+id,xmlload);
		visamatningar(document.getElementById("ex").value,1);
		loadmatning(1);
}

function nullhandler() {
    if (req.readyState == 4) {
		document.body.style.cursor = "auto";
        if (req.status != 200) {
			ddebug("Auto save error, this is a problem.");
		} else {
			alert(req.responseText);
		}
	}
}
function nullhandlersave() {
    if (req.readyState == 4) {
//		ddebug("A");
		if (req.responseXML.documentElement) {
			dvat = req.responseXML.documentElement.getElementsByTagName("dvalues");
			savedata = getdatalistfromxmlblock(dvat[0],new Array());
			for (var a = 0; a < savedata.length; a = a + 2) {
				if (savedata[a] == "identifier") {
					aa = a + 1;
					identifierv = savedata[aa];
				}
				if (savedata[a] == "identvalue") {
					aa = a + 1;
					identvaluev = savedata[aa];
				}
			}
			x = req.responseXML.documentElement.getElementsByTagName("dxp_ident");
					
			for(i=0;i<x.length;i++) {
				atti=x.item(i).attributes.getNamedItem("identifier");
				attv=x.item(i).attributes.getNamedItem("identvalue");
	
				setnamedFormElementFromNodelist("tustor",atti.value,attv.value);
				ddebug(atti.value+" -> "+attv.value);
			}
		} else {
			ddebug("No XML respons data in nullhandlersave");
		}
	  
		if (req.status != 200) {
			ddebug("Auto save error, this is a problem.");
		}
	}
}

function getdatalistfromxmlblock(block,myDataarray) {
	var data = "";
	for (var h = 0; h < myDataarray.length; h++ ) {
		myDataarray.pop();
	}
	if (block) {
		for (var i = 0; i < block.childNodes.length; i++)  {
			if (block.childNodes[i].nodeType == 1){
	//			ddebug("parsing xml respons: " + block.childNodes[i].nodeName + "->"+block.childNodes[i].firstChild.nodeValue);
				if (block.childNodes[i].firstChild) {
					myDataarray.push(block.childNodes[i].nodeName,block.childNodes[i].firstChild.nodeValue);
				} else {
					myDataarray.push(block.childNodes[i].nodeName,"");			
				}
			}
		}
	}
	return myDataarray;
}

function nullhandleralertok() {
    if (req.readyState == 4) {
        if (req.status == 200) {
			ddebug("OK");
		}
	}
}

function xmlload() {
    if (req.readyState == 4) {
        if (req.status == 200) {
			var tprefixname = new String("");
			var tformname = new String("");
//			alert(req.responseText);
			if (req.responseXML.documentElement) {
//				ddebug("XML block OK");
				var params = req.responseXML.documentElement.getElementsByTagName("params");
				if ((params.length) && (params[0])) {
					var paramsdataa = getdatalistfromxmlblock(params[0],new Array());
					var tbuff = "";
					var tprefixname = "";
					for (var a = 0; a < paramsdataa.length; a = a + 2) {
						if (paramsdataa[a] == "targetform") {
							aa = a + 1;
							tformname = paramsdataa[aa];
						}
						if (paramsdataa[a] == "targetprefix") {
							aa = a + 1;
							tprefixname = paramsdataa[aa];
						}
					}
					ddebug(" targetform -> " + tformname + " // targetprefix -> " + tprefixname);
				}
	
				var dat = req.responseXML.documentElement.getElementsByTagName("post");
				if ((tformname) && (tformname.length > 0)) {
					if ((dat) && (dat.length > 0)) {
						postdataa = getdatalistfromxmlblock(dat[0],new Array());
						if ((postdataa) && (postdataa.length)) {
							ddebug ("SET nr of values: " + postdataa.length / 2);
							for (var c = 0; c < postdataa.length; c = c + 2) {
								cc = c + 1;
								setnamedFormElementFromNodelist(tformname,tprefixname + postdataa[c],postdataa[cc]);			
							}
						} else {
	//						ddebug("ERROR -34: No post data in pos 1(0)");
	//						ddebug("ClearFormElements");
							ClearFormElements("tustor","__tuvalues__");
						}
					} else {
	//					ddebug("ERROR -34: No post data");
						ClearFormElements("tustor","__tuvalues__");
					}
				} else {
					ddebug("ERROR -35: No form name in params data");
				}
			} else {
				ddebug("No XML respons data in xmlload");
			}
		} else {
			ddebug(" ERROR -36: There was a problem retrieving the XML data:\n" + req.statusText + "\n");
		}
    }
}


function getsingelformvalue(form,field) {
	var formobject = document.getElementsByName(form)[0];
	if (formobject) {
		var inputellist = formobject.getElementsByTagName("input");
		if (inputellist) {
			for (var f = 0; f < inputellist.length; f++) {
				if (inputellist[f].name == field) {
					return inputellist[f].value;
				}
			}
		}
	}
}

function getsingelformobject(form,field) {
	var formobject = document.getElementsByName(form)[0];
	if (formobject) {
		var inputellist = formobject.getElementsByTagName("input");
		if (inputellist) {
			for (var f = 0; f < inputellist.length; f++) {
				if (inputellist[f].name == field) {
					return inputellist[f];
				}
			}
		}
	}
}

function setnamedFormElementFromNodelist(formname,namn,newvalue) {
	var nodelist = document.getElementById(formname);
	if (nodelist) {
	} else {
		ddebug("NULL node list");
	}
	if (nodelist) {
		var inputellist = nodelist.getElementsByTagName("input");
		if (inputellist.length) {
			for (var f = 0; f < inputellist.length; f++) {
				if ((inputellist[f].type == "text") || (inputellist[f].type == "hidden") || (inputellist[f].type == "submit")) {
				
					// document.theForm.aaa.options[selInd].value
					if (inputellist[f].name) {
						if (inputellist[f].name == namn) {
							if (newvalue) {
								inputellist[f].value = newvalue;
							} else {
								inputellist[f].value = "";
							}
						}
					}
				}
			}
		}
		var inputellist = nodelist.getElementsByTagName("select");
		if (inputellist.length) {
			for (var f = 0; f < inputellist.length; f++) {
				// document.theForm.aaa.options[selInd].value
				if (inputellist[f].name == namn) {
					for (o = 0; o < inputellist[f].options.length; o++) {
//						alert(inputellist[f].options[o].value);
						if (inputellist[f].options[o].value == newvalue) {
							inputellist[f].options[o].selected = true;
						} else {
							inputellist[f].options[o].selected = false;
						}
					}
				
				}
			}
		}
	}
}

function ClearFormElements(form,prefix) {

	idobj = document.getElementById(form);
	for (var s = 0;s < idobj.elements.length;s++) {
		if (prefix) {
			if (idobj.elements[s].name.search(prefix) == 0) {
				idobj.elements[s].value = "";
			}
		} else {
			idobj.elements[s].value = "";
		}
	}
}




function ddebug (logstringdata) {
//		alert(logstringdata);
//		console.error(logstringdata);
}
