AttributeRepetition: WORepetition {
	_unroll = true;
	item = propertyKey;
	list = currentSectionKeys;
	index = index;
}

IsNotOmitted : WOConditional {
	condition = isKeyOmitted;
	negate = true;
}

AttributeRepetitionDiv : WOGenericContainer {
	elementName = "div";
	class = d2wContext.classForAttributeRepetitionWrapper;
}

AttributeValue: WOSwitchComponent { 
	WOComponentName = d2wContext.componentName;
	localContext = d2wContext;
	displayGroup = displayGroup;
}

LineDiv : WOGenericContainer {
	elementName = "div";
	class = lineDivClass;
}

HasPropertyName: WOConditional {
	condition = d2wContext.hidePropertyName;
	negate = true;
}

HasNoPropertyName : WOConditional {
	condition = d2wContext.hidePropertyName;
}

HasSectionName: ERXNonZeroConditional {
	condition = currentSection.name.length;
}

EmptyLabelSpan : WOGenericContainer {
	elementName = "span";
	class = d2wContext.classForEmptyLabelSpan;
}


PropertyName: WOSwitchComponent {
	WOComponentName = d2wContext.propertyNameComponentName;
	localContext = d2wContext;
}

SafeWrapper : D2WEmptyWrapper {
	
}

SectionName: WOSwitchComponent {
	WOComponentName = d2wContext.sectionComponentName;
	d2wContext = d2wContext;
}

SectionWrapper : WOGenericContainer {
	elementName = "fieldset";
	class = d2wContext.classForSection;
}

Sections: WORepetition {
    list=sectionsContents;
    item=currentSection;
}

AttributeWrapper : WOGenericContainer {
	elementName = "span";
	class = d2wContext.classForAttributeValue;
}

LabelWrapper : WOGenericContainer {
	elementName = "span";
	class = d2wContext.classForLabelSpan;
}
SavedQueryComponentDefined: WOConditional {
	condition = d2wContext.savedQueryComponentName;
}

SavedQuerySwitchedComponent:  WOSwitchComponent {
	WOComponentName = d2wContext.savedQueryComponentName;
	_componentUnroll = true;
	_unroll = true;
	displayGroup = displayGroup;
	localContext = localContext;
}