define({
	getConfigOptionValue: function(obj, optionName) {
		var configData = obj.context.modelData.layoutItem.configData;
		var value = undefined;
		
		for(var i = 0; i < configData.length; i++) {
			var configOption = configData[i];
			if(configOption.optionName != optionName)
				continue;
			value = configOption.value;
			break;
		}
		
		return value;
	},
	getResponsiveConfigOptionValue: function(obj, optionName) {
		var configOptionValue = this.getConfigOptionValue(obj, optionName);
		
		if(configOptionValue != undefined) {
			var configObj = dojo.fromJson(configOptionValue);
			
			if(!!configObj && configObj.isResponsiveData == true) {
				var configValues = configObj.values;
				var deviceID = obj.context.device.deviceID;
				var values = {"LargeID":undefined, "MediumID":undefined, "SmallID":undefined};
			
				for(var j = 0; j < configValues.length; j++) {
					var configValue = configValues[j];
					
					if(configValue.deviceConfigID == "LargeID")
						values.LargeID = configValue.value;
					else if(configValue.deviceConfigID == "MediumID")
						values.MediumID = configValue.value;
					else if(configValue.deviceConfigID == "SmallID")
						values.SmallID = configValue.value;
				}
				
				// inherit medium from large
				if(values.MediumID == undefined)
					values.MediumID = values.LargeID;
					
				// inherit small from medium
				if(values.SmallID == undefined)
					values.SmallID = values.MediumID;
					
				configOptionValue = values[deviceID];
			}
		}
		
		return configOptionValue;
	}
});