| /* global */ |
| /* exported FootageInterface */ |
| |
| var FootageInterface = (function () { |
| var outlineInterfaceFactory = (function (elem) { |
| var currentPropertyName = ''; |
| var currentProperty = elem.getFootageData(); |
| function init() { |
| currentPropertyName = ''; |
| currentProperty = elem.getFootageData(); |
| return searchProperty; |
| } |
| function searchProperty(value) { |
| if (currentProperty[value]) { |
| currentPropertyName = value; |
| currentProperty = currentProperty[value]; |
| if (typeof currentProperty === 'object') { |
| return searchProperty; |
| } |
| return currentProperty; |
| } |
| var propertyNameIndex = value.indexOf(currentPropertyName); |
| if (propertyNameIndex !== -1) { |
| var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10); |
| currentProperty = currentProperty[index]; |
| if (typeof currentProperty === 'object') { |
| return searchProperty; |
| } |
| return currentProperty; |
| } |
| return ''; |
| } |
| return init; |
| }); |
| |
| var dataInterfaceFactory = function (elem) { |
| function interfaceFunction(value) { |
| if (value === 'Outline') { |
| return interfaceFunction.outlineInterface(); |
| } |
| return null; |
| } |
| |
| interfaceFunction._name = 'Outline'; |
| interfaceFunction.outlineInterface = outlineInterfaceFactory(elem); |
| return interfaceFunction; |
| }; |
| |
| return function (elem) { |
| function _interfaceFunction(value) { |
| if (value === 'Data') { |
| return _interfaceFunction.dataInterface; |
| } |
| return null; |
| } |
| |
| _interfaceFunction._name = 'Data'; |
| _interfaceFunction.dataInterface = dataInterfaceFactory(elem); |
| return _interfaceFunction; |
| }; |
| }()); |