
arpt.form = {

	getFields: function(form) {
		var nodes = [];
		
    	var flds = form.getElementsByTagName('input');
    	for (var i=0; i < flds.length; i++) 
      		nodes.push(flds[i]);
    
   		flds = form.getElementsByTagName('select');
    	for (var i=0; i < flds.length; i++) 
       		nodes.push(flds[i]);
    	
   		flds = form.getElementsByTagName('text-area');
    	for (var i=0; i < flds.length; i++) 
       		nodes.push(flds[i]);
    	
   		return nodes;
	},

	getFieldValues: function(form) {
		var fields = arpt.form.getFields(form);
	
		var obj = [];
		for(var i=0,len=fields.length; i<len; i++) {
			var elm = fields[i];
			if (elm.name == '') { continue;}
			var namePath = [];
			namePath=elm.name.split(".");
			
			var name=namePath[namePath.length-1];
			for(var j=1,len2=namePath.length;j<len2;++j) {
				var nameIndex = null;
				var p=namePath[j - 1];
				var nameA=p.split("[");
				if (nameA.length > 1) {
					var s = nameA[0];
					if(typeof(obj[s]) == "undefined") {
						obj[s]=[];
					}
					nameIndex=parseInt(nameA[1]);
					if(typeof(obj[s][nameIndex]) == "undefined") {
						obj[s][nameIndex]={};
					}
				} else if(typeof(obj[s]) == "undefined") {
					obj[s]={}
				}
	
				if (nameA.length == 1) {
					obj=obj[s];
				} else {
					obj=obj[s][nameIndex];
				}
			}
	
			if ((elm.type != "select-multiple" && elm.type != "checkbox" && elm.type != "radio") || 
				(elm.type=="radio" && elm.checked)) {
				if(name == name.split("[")[0]) {
					obj[name]=elm.value;
				}
				
			} else if (elm.type == "checkbox" && elm.checked) {
				if(typeof(obj[name]) == 'undefined') {
					obj[name]=[];
				}
				obj[name].push(elm.value);
				
			} else if (elm.type == "select-multiple") {
				if(typeof(obj[name]) == 'undefined') {
					obj[name]=[];
				}
				for (var jdx=0,len3=elm.options.length; jdx<len3; ++jdx) {
					if (elm.options[jdx].selected) {
						obj[name].push(elm.options[jdx].value);
					}
				}
			}
			name=undefined;
		}
		
		return obj;
	},

	submit: function(form,url) {
		if (typeof form == "string") form = document.forms[form];
		if(url) form.action = url;
		form.submit();
	},

	setAction: function(formId,action) {
		var form = document.forms[formId];
		form['_action'].value = action;
	},

	submitAsPost: function(form,url) {
		if (typeof form == "string") form = document.forms[form];
		form.method = "post";
		form.target = "";
		if (url) form.action = url;
		form.submit();
	},
	
	submitAsGet: function(form,url,target) {
		if (typeof form == "string") form = document.forms[form];
		// Put the url back into the form.
		//
		if (target!=null) form.target = target;
		form.method = "get";
		if (url) form.action = url;
		form.submit();
	},
	
	checkMaxLength: function(e) {
		var maxLength = e.getAttribute('maxlength');
		var len = e.value.length;
		if (len >= maxLength) {
			e.value = e.value.substr(0, maxLength);
			return true;
		} else {
			return true;
		}
	}
};
