/*
	Copyright (c) 2004-2016, The JS Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/

//>>built
define("dojo/dom-form",["./_base/lang","./dom","./io-query","./json"],function(_1,_2,_3,_4){
function _5(_6,_7,_8){
if(_8===null){
return;
}
var _9=_6[_7];
if(typeof _9=="string"){
_6[_7]=[_9,_8];
}else{
if(_1.isArray(_9)){
_9.push(_8);
}else{
_6[_7]=_8;
}
}
};
var _a="file|submit|image|reset|button";
var _b={fieldToObject:function fieldToObject(_c){
var _d=null;
_c=_2.byId(_c);
if(_c){
var _e=_c.name,_f=(_c.type||"").toLowerCase();
if(_e&&_f&&!_c.disabled){
if(_f=="radio"||_f=="checkbox"){
if(_c.checked){
_d=_c.value;
}
}else{
if(_c.multiple){
_d=[];
var _10=[_c.firstChild];
while(_10.length){
for(var _11=_10.pop();_11;_11=_11.nextSibling){
if(_11.nodeType==1&&_11.tagName.toLowerCase()=="option"){
if(_11.selected){
_d.push(_11.value);
}
}else{
if(_11.nextSibling){
_10.push(_11.nextSibling);
}
if(_11.firstChild){
_10.push(_11.firstChild);
}
break;
}
}
}
}else{
_d=_c.value;
}
}
}
}
return _d;
},toObject:function formToObject(_12){
var ret={},_13=_2.byId(_12).elements;
for(var i=0,l=_13.length;i<l;++i){
var _14=_13[i],_15=_14.name,_16=(_14.type||"").toLowerCase();
if(_15&&_16&&_a.indexOf(_16)<0&&!_14.disabled){
_5(ret,_15,_b.fieldToObject(_14));
if(_16=="image"){
ret[_15+".x"]=ret[_15+".y"]=ret[_15].x=ret[_15].y=0;
}
}
}
return ret;
},toQuery:function formToQuery(_17){
return _3.objectToQuery(_b.toObject(_17));
},toJson:function formToJson(_18,_19){
return _4.stringify(_b.toObject(_18),null,_19?4:0);
}};
return _b;
});
