﻿function formatItem(strName, strValue) {
    if (strName && strName.length && strValue && strValue.length) {
        return "<item name=\"" + strName + "\"><![CDATA[" + strValue + "]]></item>";        
    }
    else {
        return "";
    }
}

function addMultipleSelect(objSelect) {
    var strReturnText = "";
    for (i=objSelect.selectedIndex; i<objSelect.options.length ; ++i){
        if (objSelect.options[i].selected) {
            strReturnText += formatItem(objSelect.name, objSelect.options[i].value);
        }
    }
}

function parseForm(strFormID) {
    var objForm = document.getElementById(strFormID);
    var strReturnText = "";
    var objElements, objElement;    
    
    if (objForm && objForm.elements){
        objElements = objForm.elements;
        for (i=0; i < objElements.length; ++i){
            objElement = objElements[i];
            if ((objElement && objElement.type)){
				if(objElement.disabled) continue;
                for (j=1;j<arguments.length;j++){
                    if(objElement.name == arguments[j]) continue;
                }
                if(objElement.name.indexOf("Validator") > -1) continue;
                if(objElement.name.indexOf("_Required") > -1) continue;
                if(objElement.name.indexOf("_Email") > -1) continue;
                if(objElement.name.indexOf("_Regex") > -1) continue;
                if(objElement.name.indexOf("_Compare") > -1) continue;
                
                switch (objElement.type) {
                    case "checkbox":
                    case "radio":
                        if (objElement.checked) {
                            strReturnText += formatItem(objElement.name, objElement.value);
                        }
						break;
                    case "hidden":
                    case "password":
                    case "text":
                    case "textarea":
                        strReturnText += formatItem(objElement.name, objElement.value);
						break;
                    case "select-one":
                    case "select-multiple":
                        if (objElement.selectedIndex >= 0) {
							strReturnText += formatItem(objElement.name, objElement.options[objElement.selectedIndex].value);
                        }
						break;
                    case "file":
                        alert("Don't know how to handle files yet!!\n/javascript/formParser.js/parseForm()");
						break;
                    default: 
						break;
                }
            }
        }
    }
   // strReturnText = "<postdata>" + strReturnText + "</postdata>";
    
    return strReturnText;
}