const elemIdUtils = { CARD_PREFIX: 'card', CARD_HEADER_PREFIX: 'cardHdr', CARD_DESCR_PREFIX: 'cardDescr', CARD_TEXT_PREFIX: 'cardText', CARD_TAB_CONTENT_PREFIX: 'cardTabContent', CARD_EXPANDED_CONTENT_PREFIX: 'cardExp', CARD_COLLAPSED_CONTENT_PREFIX: 'cardColl', BUTTON_CLOSE_CARD_HEADER_PREFIX: 'btnCloseCardHdr', BUTTON_LOAD_VIDEO_PREFIX: 'btnLoadVideo', IMAGE_BOOKMARK_PREFIX: 'imgBk', SPAN_LENS_NAME_PREFIX: 'lensNameS', SPAN_MORE_PREFIX: 'sMore', SPAN_LESS_PREFIX: 'sLess', COLLAPSE_TABS_PREFIX: 'collapseTabs', LIST_PREFIX: 'cardTab', LIST_ITEM_WHEN_TAB_PREFIX: 'liWhenTab', LIST_ITEM_HOW_TAB_PREFIX: 'liHowTab', LIST_ITEM_EXAMPLES_TAB_PREFIX: 'liExTab', LIST_ITEM_VIDEO_TAB_PREFIX: 'liVideoTab', WHEN_CONTENT_PREFIX: 'whenContent', HOW_CONTENT_PREFIX: 'howContent', EXAMPLES_CONTENT_PREFIX: 'exContent', VIDEO_CONTENT_PREFIX: 'videoContent', VIDEO_ANCHOR_PREFIX: 'videoAnchor', VIDEO_PREFIX: 'video', VIDEO_IFRAME_PREFIX: 'videoIFrame', VIDEO_IFRAME_PARENT_PREFIX: 'divVideoIFrame', TAB_PANE_WHEN_PREFIX: 'tpWhen', TAB_PANE_HOW_PREFIX: 'tpHow', TAB_PANE_EXAMPLES_PREFIX: 'tpExamples', TAB_PANE_VIDEO_PREFIX: 'tpVideo', getElemId: function getElemId(lensId, prefix, expanded) { // return an element id // lensId: id of the target lens // prefix: string prefix used for a set of related elements // expanded: // true: this element is the expanded version of its contents // false: this element is the collapsed version // undefined: there is only one of these elements per lens, not two versions (expanded, collapsed) //log('getElemId: enter'); var elemId = ''; if (typeof expanded === "undefined") { elemId = prefix + '-' + lensId; } else { if (expanded) { elemId = prefix + '-e-' + lensId; } else { elemId = prefix + '-c-' + lensId; } } //log('getElemId: elemId=' + elemId); //log('getElemId: leave'); return elemId; }, getVideoIFrameElemId: function getVideoIFrameElemId(lensId) { log('getVideoIFrameElemId: enter'); const iFrameId = this.getElemId(lensId, elemIdUtils.VIDEO_IFRAME_PREFIX, undefined); // get the id of the iFrame element // for now, all video iFrame elements are one per lens, not expanded or collapsed log('getVideoIFrameElemId: videoElemId=' + iFrameId); log('getVideoIFrameElemId: leave'); return iFrameId; }, getLensIdFromVideoIFrameElemId: function getLensIdFromVideoIFrameElemId(elemId) { // example // videoIFrame-19 const logHdr = 'getLensIdFromVideoIFrameElemId: '; log(logHdr + 'enter'); log(logHdr + 'elemId=' + elemId); const numStr = elemId.substring(12); // get the numeric string const lensId = parseInt(numStr, 10); // convert to an integer log(logHdr + 'lensId=' + lensId); log(logHdr + 'leave'); return lensId; }, getVideoIFrameParentElemId: function getVideoIFrameElemId(lensId) { log('getVideoIFrameParentElemId: enter'); const divId = this.getElemId(lensId, elemIdUtils.VIDEO_IFRAME_PARENT_PREFIX, undefined); // get the id of the div parent of the iFrame element // for now, all video iFrame elements are one per lens, not expanded or collapsed log('getVideoIFrameParentElemId: divId=' + divId); log('getVideoIFrameParentElemId: leave'); return divId; }, getVideoElemId: function getVideoElemId(lensId) { log('getVideoElemId: enter'); const videoElemId = this.getElemId(lensId, elemIdUtils.VIDEO_PREFIX, undefined); // get the id of the video element // for now, all video elements are one per lens, not expanded or collapsed log('getVideoElemId: videoElemId=' + videoElemId); log('getVideoElemId: leave'); return videoElemId; } };