// ------------------- Webform specific functions -------------------
function saveWebForm() {
	var strXML = getFormXML('webform');
	var objForm = document.getElementById('webform');
	var objXMLField = document.getElementById("XML");
	objXMLField.value = strXML;
	objForm.submit();
}

// ------------------- Main function for retrieving XML from form -------------------

function getFormXML(strFormName) {
	// Returns a full XML from a given form
	var vXML_Return = '';
	
	objForm = document.getElementById(strFormName);
	vXML_Return = initXML();
	vXML_Return = vXML_Return + getFieldValues(objForm, 'Body');
	vXML_Return = vXML_Return + endXML();
	
	return(vXML_Return);
}

// ------------------- All functions belowe are used by the getFormAsXML-function -------------------

function initXML() {
	var vXML_Return = '';
	return(vXML_Return);
}

function endXML() {
	var vXML_Return = '';
	return(vXML_Return);
}

// ------------------- Build XML out of  a single value and itemName -------------------

function addValue(strItemName, strItemValue) {

	var vXML_Return = '';
	
	if (strItemName!='XML') {
		if ((strItemValue)!='NULL') {
			vXML_Return = '<' + strItemName + '>' + escape(strItemValue) + '</' + strItemName + '>\n';
		} else {
			vXML_Return = '<' + strItemName + '></' + strItemName + '>\n';
		}
	}
	return(vXML_Return);
}

// ------------------- Loop form and build XML out of field-values -------------------

function getFieldValues(objForm) {

	var vXML_Return = '';
	var vFieldValue = '';

	for(i=0;i<objForm.elements.length;i++){

		var vObject = objForm.elements[i];
		var vName = objForm.elements[i].name;
		var vId = objForm.elements[i].id;

		if (vName=="") {
			vName = vId;
		}				

		vFieldValue = objForm.elements[i].value;

		if (vFieldValue == "") vFieldValue = "NULL";

		//TEXT FIELDS (THESE OFTEN HAVE NO TYPE)
		if(vObject.type == "text" || vObject.type == "" || vObject.type == "hidden" || vObject.type == "textarea"){
			vXML_Return = addValue(vName.substring(0,vName.length), vFieldValue) + vXML_Return;
		}
	 
		//RADIO BUTTONS
		if(vObject.type == "radio"){
			 
			 if(vObject.checked){
				 vXML_Return = addValue(vName.substring(0,vName.length), vFieldValue) + vXML_Return;
			 }else{
				vXML_Return = addValue(vName.substring(0,vName.length), "NULL") + vXML_Return;
			 }
		}

		//CHECK BOXES
		if(vObject.type == "checkbox"){
			 if(vObject.checked){
				 vXML_Return = addValue(vName.substring(0,vName.length), vFieldValue) + vXML_Return;
			 }else{
				vXML_Return = addValue(vName.substring(0,vName.length), "NULL") + vXML_Return;
			 }
		}
		 
		//SELECT BOX (SINGLE AND MULTIPLE)
		if(vObject.type == "select-one" || vObject.type == "select-multiple"){
			for (var x=0; x < vObject.options.length; x++){
				 if (vObject.options[x].selected){
					vXML_Return = addValue(vName.substring(0,vName.length), vObject.options[x].value) + vXML_Return;
				 }
			}
			if(vObject.selectedIndex == -1){
				// addValue(vName.substring(0,vName.length), "NULL");
			}
		}
	}
	
	return(vXML_Return);
}