'use strict';
var Linear = require('./Linear');
var Companion = require('./Companion');
var utilities = require('../../utils/utilityFunctions');
function Creative(creativeJTree) {
Iif(!(this instanceof Creative)) {
return new Creative(creativeJTree);
}
this.id = creativeJTree.attr('id');
this.sequence = creativeJTree.attr('sequence');
this.adId = creativeJTree.attr('adId');
this.apiFramework = creativeJTree.attr('apiFramework');
if(creativeJTree.linear) {
this.linear = new Linear(creativeJTree.linear);
}
if (creativeJTree.companionAds) {
var companions = [];
var companionAds = creativeJTree.companionAds && creativeJTree.companionAds.companion;
Iif (utilities.isDefined(companionAds)) {
companionAds = utilities.isArray(companionAds) ? companionAds : [companionAds];
companionAds.forEach(function (companionData) {
companions.push(new Companion(companionData));
});
}
this.companionAds = companions;
}
}
/**
* Returns true if the browser supports at the creative.
*/
Creative.prototype.isSupported = function(){
if(this.linear) {
return this.linear.isSupported();
}
return true;
};
Creative.parseCreatives = function parseCreatives(creativesJTree) {
var creatives = [];
var creativesData;
if (utilities.isDefined(creativesJTree) && utilities.isDefined(creativesJTree.creative)) {
creativesData = utilities.isArray(creativesJTree.creative) ? creativesJTree.creative : [creativesJTree.creative];
creativesData.forEach(function (creative) {
creatives.push(new Creative(creative));
});
}
return creatives;
};
module.exports = Creative;
|