  var properties = {}; for(var item in fragment){   if((fragment[item] == fragment.tagName)||(fragment[item] == fragment.nodeRef)){  }else{ var frag = fragment[item]; if(frag.tagName && dojo.widget.tags[frag.tagName.toLowerCase()]){     }else if(frag[0] && frag[0].value!="" && frag[0].value!=null){ try{  if(item.toLowerCase() == "dataprovider"){ var _this = this; this.getDataProvider(_this, frag[0].value); properties.dataProvider = this.dataProvider; } properties[item] = frag[0].value; var nestedProperties = this.parseProperties(frag);  for(var property in nestedProperties){ properties[property] = nestedProperties[property]; } }catch(e){ dojo.debug(e); } } switch(item.toLowerCase()){ case "checked": case "disabled": if (typeof properties[item] != "boolean"){ properties[item] = true; } break; } } } return properties; } 
  var properties = {}; for(var item in fragment){   if((fragment[item] == fragment.tagName)||(fragment[item] == fragment.nodeRef)){  }else{ var frag = fragment[item]; if(frag.tagName && dojo.widget.tags[frag.tagName.toLowerCase()]){     }else if(frag[0] && frag[0].value!="" && frag[0].value!=null){ try{  if(item.toLowerCase() == "dataprovider"){ var _this = this; this.getDataProvider(_this, frag[0].value); properties.dataProvider = this.dataProvider; } properties[item] = frag[0].value; var nestedProperties = this.parseProperties(frag);  for(var property in nestedProperties){ properties[property] = nestedProperties[property]; } }catch(e){ dojo.debug(e); } } switch(item.toLowerCase()){ case "checked": case "disabled": if (typeof properties[item] != "boolean"){ properties[item] = true; } break; } } } return properties; } 
	this.parseProperties = function(/*Object*/fragment){		// summary: parseProperties checks a raw JavaScript object structure for		//	properties, and returns a hash of properties that it finds.		var properties = {};		for(var item in fragment){			// FIXME: need to check for undefined?			// case: its a tagName or nodeRef			if((fragment[item] == fragment.tagName)||(fragment[item] == fragment.nodeRef)){				// do nothing			}else{				var frag = fragment[item];				if(frag.tagName && dojo.widget.tags[frag.tagName.toLowerCase()]){					// TODO: it isn't a property or property set, it's a fragment, 					// so do something else					// FIXME: needs to be a better/stricter check					// TODO: handle xlink:href for external property sets				}else if(frag[0] && frag[0].value!="" && frag[0].value!=null){					try{						// FIXME: need to allow more than one provider						if(item.toLowerCase() == "dataprovider"){							var _this = this;							this.getDataProvider(_this, frag[0].value);							properties.dataProvider = this.dataProvider;						}						properties[item] = frag[0].value;						var nestedProperties = this.parseProperties(frag);						// FIXME: this kind of copying is expensive and inefficient!						for(var property in nestedProperties){							properties[property] = nestedProperties[property];						}					}catch(e){ dojo.debug(e); }				}				switch(item.toLowerCase()){				case "checked":				case "disabled":					if (typeof properties[item] != "boolean"){ 						properties[item] = true;					}					break;				}			} 		}		return properties; // Object	}
6315	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6315/2f1d2cb699c9d9329e8b782b0463156e211cb0f6/struts_dojo.js.uncompressed.js/buggy/src/main/resources/org/apache/struts2/static/dojo/struts_dojo.js.uncompressed.js