{"version":3,"sources":["shareTools.js","cnnmoney.video.special.originals.js","site.js","isMobile.js","jquery.directional-hover.js","specials.videocontrols.js"],"names":["cnnUpdateShareWidget","data","videoId","video_id","videouri","videotitle","title","document","videoimage","image","videoshareinfo","global","url","CNNM","Social","setoverrides","enableRefresh","refresh","setADBPValues","player","o","contentpage","cnnOmniture_source","cnnOmniture_prop14","cnnOmniture_prop17","cnnOmniture_prop19","cnnOmniture_playername","cnnOmniture_prop24","source","section","playerprofile","profile","location","pathname","match","vidloc","top","playVideo","playerId","videoPlayer","undefined","VideoPlayerManager","getPlayer","playVideos","itemNum","play_list","getIndex","injectItem","id","play","VideoPlayer","config","callbacks","_init","utils","canPlayFlash","canPlayHTML5","_self","canPlay","load","temp_list","_player","width","playerWidth","height","playerHeight","flashVars","context","autostart","has_poster","autoplay","site","flashVarsProfile","embed","containerSwf","getContainerPath","expressInstallSwf","options","quality","bgcolor","allowFullScreen","allowScriptAccess","wmode","navigator","userAgent","toLowerCase","indexOf","playerType","getBestPlayer","freewheelJsUrl","playercallbacks","default_callbacks","c","registerCallouts","initial_callouts","this","vidprofile","parseInt","Math","random","toString","playerprofiles","configs","playerDivId","divId","divid","defaultSection","mode","VideoPlaylist","MODES","NORMAL","firstVideoId","maxVideos","limit","playlist","videoArray","auto_playlist","callouts","eval","window","disableNextUpSlate","disableEndSlate","ssid","slateClickTarget","slateClick","endSlate","pauseSlate","nextUpSlate","activeVideoObject","onCVPReady","onContentBegin","onContentPause","onContentEnd","onContentPlayhead","hedClass","dekClass","countdownClass","bylineClass","player_elem","hed_elem","dek_elem","byline_elem","countdown_elem","adStartTime","trackingcontext","videoStartTime","maximizeAndroid","isPlaying","isPaused","isAdPlaying","isHTML5","playlistloaded","isReplay","autostart_tracking","onPlayerReady","setHTML5flag","setplayerElems","e","firstVideo","getItem","setPointer","prevItem","playNext","log","length","i","_f","onAdPlay","token","duration","blockId","adType","vdata","getContentEntry","getContentId","JSON","parse","sendVideoEvent","Date","adcountdown_start","onAdPlayhead","playhead","adcountdown_update","onAdEnd","adcountdown_remove","contentId","hideSlates","pauseplayers","message","updateexternalitems","pointer","switchTrackingContext","loadplaylist","onContentPlay","video_length","trt","video_publish_date","dateCreated","text","replace","is_auto","paused","onContentBuffering","buffering","onTrackingContentSeek","dataObj","vc","_jsmd","plugin","gMONVideoCollection","get","hasMoreItems","REPEAT","resetPointer","showSlate","onContentReplayRequest","additionalParams","onContentEntryLoadError","errorMessage","errorCode","queue","handleContentError","onContentError","onCVPVisibilityChange","visible","onPageVisibilityChange","onViewportVisibilityChange","onAdError","onAdPrerollUrl","onAdPostrollUrl","onAdSensitive","onContentEntryLoad","isQueue","onContentResize","onContentVolume","muted","volume","onContentBitrateInfo","currentBitrateId","maxBitrateId","currentBitrate","onContentBitrateChangeStart","onContentBitrateChangeEnd","onContentBitrateChangeError","error","onContentComplete","onContentMetadata","onContentQueue","onContentQueueAutoplay","onTrackingAdStart","onTrackingAdComplete","onTrackingAdProgress","onTrackingAdCountdown","onTrackingAdClick","onTrackingContentPlay","onTrackingContentBegin","onTrackingContentProgress","onTrackingContentComplete","onTrackingContentReplay","onTrackingContentSegmentPlay","onTrackingContentSegmentComplete","onTrackingFullscreen","onTrackingMuted","onTrackingPaused","init","CVP","getFirstItemId","playlistItem","branding","category","getDefaultSection","list","adSensitive","setLimit","getPayload","success","reqId","textStatus","jqXHR","$xmldata","jQuery","$video","find","eq","headline","dek","charAt","push","hed","append","errorThrown","resizeTo","getElementById","resize","hide","player_holderid","cvpplayerobject","parent","parentNode","traversals","className","setAttribute","querySelector","playerParent","VideoPlayerSlate","targetNode","type","TYPES","END","clickTarget","NEXTUP","onCountdownComplete","vidjson","vid","description","producer","producer_tw","producer_url","innerHTML","name","byline_html","playerclass","isNaN","countdown","setInterval","time_tostring","clearInterval","getPlayerType","embedNeedsFlash","s","elem","pause","allowPastLimit","playListItem","getContext","VideoPlayerAds","get_ssid","setAdSection","getCurrentItemId","setTimeout","nextItem","nextVideoId","getNumItems","remove","show","replay","playlistItemId","getCurrentPlayTime","getPlayhead","emptyQueue","seek","sec","_sanitize","found_dup","j","endOfList","appendList","loadPlaylistItemData","updateEndOfListFlag","getCurrentItem","itemid","getItemsInRange","startIndex","endIndex","Error","startIdex","getLastItemId","item","index","splice","async","firstChild","nodeName","responseText","parseXML","$images","$files","jqFiles","jqImages","images","getImages","poster","img","getPosterImage","thumb","_dataComplete","uri","idx","newLimit","newSlate","createElement","rootNode","appendChild","buildUI","seconds","onCountdownPause","isRunning","isStopped","intervalId","start","second","$countdownLabel","html","complete","stop","nextIndex","_playlistItem","_list","runTemplate","endRange","_list2","concat","target","click","slateData","replaceWith","each","$elem","attr","src","event","preventDefault","fadeInVideoThumbs","$","delay","animate","opacity","videoSlide","isMobile","search","getElementsByTagName","eventLogger","quoteRegistered","trackvalues","social","twt-tweet","twt-retweet","twt-favorite","twt-follow","fb-like","fb-share","goog-plus","lin-share","pin-share","reddit-share","stumbleupon-share","link","email","print","cmt-cmmt","business","mny","bubble_quotes","social_track","h","a","g","f","href","clickObj","socialType","pageName","trackMetrics","d","incBubbleCount","logMetrics","action","component","cnnm_sourcing","sourceTypes","cnnmoney","fortune","moneymag","getURLSource","b","split","cnnmsocial","facebook","shareURL","btn_class","btnlike_class","$btn_like","likereaction","verb","showcount_like","appID","killswitch","addbutton","$btnsbin","sharedata","getbutton","$button","addshareonlick","$btn","addlikebutton","browser","cnnIE6","isFunction","fn","on","removeClass","open","live","$sharebar","$buttonlike","newbuttonadded","getlikebutton","loadscript","button","shareurl","sharetitle","encodedShareUrl","encodeURIComponent","encodedTitle","likebutton","overrides","customshare","shareobj","callback","response","pic","caption","desc","obj","method","picture","FB","ui","XFBML","setAppId","fbAsyncInit","Event","subscribe","socialtrack_URL","settrackURL","stag","shareTitle","twitter","getCountURL","bitlyURL","related","count","eventsbound","via","$selector","encodedText","relatedText","getRelated","hashes","bindevents","twttr","ready","events","bind","widgets","t","js","fjs","insertBefore","_e","twitterBtns","querySelectorAll","tempElem","replaceChild","childNodes","binder","window_href","window_name","window_conf","openWindow","cnntweetDesc","linkedin","linkedInLoaded","newwindowProperties","linkedinURL","setSource","gplus","annotation","encodedUrl","gplus_track","jvar","pinterest","imageURL","shareimage","encodedImgUrl","encodedDesc","is_video","pagetype","pagetypes","video","shareImage","reddit","stumbleupon","shareText","buttontag_contents","stLight","publisher","onhover","stButtons","locateElements","embedscript","setbutton","$self","is","children","toggleClass","val","focus","select","mouseup","trigger","closest","setembedscript","actualhost","host","embedHost","indexLoc","substring","bitly","getbitlyURL","bitlyGrab","bitlyurl","bitlyupdate","morebutton","popupclass","sharelist","$popupmenu","stopPropagation","addpopupmenu","sharemenulist","setsharelist","shareArray","empty","sharebars","$main","$main_btnsbins","$float","$float_btnsbins","buttonset_main","buttonset_more","positions","float_start_selector","float_end_selector","float_start","float_end","is_floating","float_hidden","scroll_last_position","story","gallery","quiz","poll","listspecial","calc","sharePath","showcount","win","platform","mac","cnnIE","cnnIE7","cnnIE8","cnnFF","cnnChrome","setpagetype","cnnmsoc_overrides","setbuttonsets","unshift","setsharedata","metaurl","metaurl_og","metatitle","metatitle_og","metaimage_og","h1s","trim","multipageURL","lastPos","lastIndexOf","input","floatstartselector","floatendselector","addsharebar_main","topbar","$existingAnchor","addsharebar_float","addsocialbuttons","n","addtoutshares","sharemenus","metadata","mainset_str","moreset_str","mainsharelist","moresharelist","moresharelistObs","morelist","loadscripts","socialbrand","URL","debugit","display","$testbox","hostname","directionalHover","slideOverlay","overlay","direction","px","py","ew","eh","ex","ey","cornerFlags","FLAG_T","FLAG_R","FLAG_B","FLAG_L","findSide","flags","x","y","w","testMask","tlMask","testTopLeftToBottomRight","setOverlayPosition","trMask","testBottomRightToTopLeft","blMask","brMask","mask","left","opts","speed","easing","extend","defaults","css","position","overflow","container","hover","pageX","pageY","floor","offset","cnnBVPAdSections","news","business2","markets","media ","luxury","pf","fsb","smallbusiness","technology","fortune_news","fortune_business","fortune_markets","fortune_pf","fortune_smallbusiness","fortune_technology","fortune_fortune","btw","b.t.w.","cnnmoneyreports","facetoface","strategysessions","morningbuzz","corneroffice","detroit","midtermelections2010","gas","cnnmoneynow","moneytips","asktheexpert","revell","innovationnation","smallglobal","smallbiztips","fsbmakeover","resourceguide","stateofsmallbiz","where-are-they-now","techtalk","toptips","consciouscapitalism","visionaries","bestadvice","bestplacelive_2013","bestplacelive_2012","bestplacelive_2010","bestplacelive_2009","bestplacelive_2008","bestplacelive_2007","buffett_live","thebuzz","holidaymoney2009","holidaymoney2010","road-to-wealth","bing","csuite","csuiteunpackaged","40under40_2010","40under40_2011","40under40_2012","mostpowerfulwomen2013","globalforum","global500_2013","streetlife","investorsguide2010","investorsguide2011","money-sense","brainstormtech","disruptors","techmate","techtransformation","bestcos2012","powerwomen2012","bestcos2011","mostadmired2013","mostadmired2014","davos","executivedreamteam","appnation","gamechangers","fastestgrowingcos2012","fastestgrowingcos2013","wheels","verne_harnish","sept11_2011","trailblazers","away","drive","million-dollar-homes","the-big-spend","reliablesources","money-moves","your-money","future-of-love","ces","big-money","new-rules-for-retirement","24-hours-with","billion-dollar-ideas","family-money","why-costs","opening-bell","aloft","hottest-investments-world","the-real-economy","cloud-computing","business-ofbeing","most-innovative-cities","holiday-shopping","planning-next","dream-retirement","science-of-work","voyage","smart-spending","cnnStoryAdSections","news/economy","real_estate","retirement","fortune_lifestyle","blog_features","blog_postcards","blog_tech","blog_finance","blog_management","blog_moremoney","blog_readereschoice","blog_helpdesk","blog_economy","blog_buzz","blog_smallbusiness","bestbizideas","greenbiz","bestjobs2009","bestjobs","TheRescue","fortuneoutlook","luxurylifetop","doitnow","holiday","holiday2007","moneymainstreet","familymoney","yourfamilymoney","MONEY","bestplaceretire_2010","bestplaceretire_2009","bestplaceretire_2008","bestplaceretire_2007","bestplaceretire","retirerich","smallandglobal","fortunetechtalk","bestadvice2009","brainstormgreen","dumbest","stanleybing","powerwomen2010","powerwomen2009","powerwomen2008","powerwomen2007","powerwomen","leadership2008","fortpower25","peopleinpower","bestcos2010","bestcos2009","bestcos2008","bestcos","fastestgrowingcos2009","fastestgrowingcos2008","fortfastgrow_2007","fortune500_2013","fortune500_2012","fortune500_2011","fortune500_2010","fortune500_2009","fortune500_2008","fortune500_2007","fortune500_2006","global500_2009","global500_2008","global500_2007","mostadmired2009","mostadmired2008","mostadmiredcos","callawaycars","fortluxbiz2008","roadwarriorsfortune","captainsblog","investorsp-econ08","bpsmbiz2009","fsbhowwegotstarted","brainstormTech2008","techinnovation","techinnovators2008","biztransform","ispreview","players","generic","wp_blogs","sectionLarge","videoclip","galleryLarge","gallerySmall","galleryExtraLarge","homepage","interactive","videoInteractive","noAds","add","pid","p","initVideo","playerconfig","playerid","loc","_cvpPlayerConfig","_cvpPlayerCallbacks","numPlayers","vidConfig","loadAutoplayers","autoplayflag","isSecure","protocol","swfobject","hasFlashPlayerVersion","v","canPlayType","ua","env","dev","pro","pro_secure","secondaryList","defaultPoster","key","_img","Image","smallerImage","largerImage","k","sizes","_dim","desiredWidth","$img","dataType","ajax","warn","secureHost","totalsecs","timedisplay","round","hours","mins","PAUSE","page_target","pagebranding","pagesection","vidId","get_story_ssid","get_blogstory_ssid","_branding","_category","_source","get_bvp_ssid","get_smallplayer_ssid","_get_story_section","pairs","sectionItems","cnnSource","_get_page_branding","cnnBrandingValue","set_branding","set_section","branding_ssid","section_ssid","blogname","videoBranding","videoCategory","videoSource","specials_vidControls","$controls","videoplayer","$videoplayer_viewer","vidPlayerid","videoisonscreen","isonscreen","viewport","scrollTop","scrollLeft","right","bottom","bounds","outerWidth","outerHeight","setonblur","scroll","highlightbtn","findandhighlightbtn","buttons","playVideoURLParam","selectedvid","getQSParam","dataset","UI_btns_selector","viewerContainer","onresize","player_w","body","offsetWidth","innerWidth","innerHeight","player_h","isAndroid","addClass","$vidviewport","videoplayer_width","videoplayer_height","$window","$windowWidth","androidVideo","heroHeight","jsHeroImg","jsWindow","jsWindow60","jsHeroImgOffset","offsetHeight"],"mappings":"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","file":"global.js","sourcesContent":["var eventLogger = {\n quoteRegistered: false,\n trackvalues: {\n social: {\n \"twt-tweet\": \"twitter_click\",\n \"twt-retweet\": \"twitter_click\",\n \"twt-favorite\": \"twitter_click\",\n \"twt-follow\": \"twitter_click\",\n \"fb-like\": \"facebook_click\",\n \"fb-share\": \"facebook_post\",\n \"goog-plus\": \"google_click\",\n \"lin-share\": \"linkedin_click\",\n \"pin-share\": \"pinterest_click\",\n \"reddit-share\": \"reddit_click\",\n \"stumbleupon-share\": \"stumbleupon_click\",\n \"embed\": \"embed_click\",\n \"link\": \"link_click\",\n \"email\": \"email_click\",\n \"print\": \"print_click\",\n \"cmt-cmmt\": \"disqus_click\"\n }\n },\n init: function() {\n if (jQuery(\"body.cnn-story\").length > 0) {\n if (typeof(business) == \"undefined\") {\n business = {\n mny: {\n bubble_quotes: 0\n }\n };\n }\n }\n },\n social_track: function(h, a) {\n var g = \"\";\n var c = this.trackvalues.social[h];\n var f = {\n type: \"social-click\"\n };\n if (typeof a === \"undefined\" || a == null) {\n g = window.location.href;\n } else {\n g = a;\n } if (c != null && g != \"\") {\n try {\n f.data = {\n clickObj: {\n socialType: c,\n pageName: g\n }\n };\n trackMetrics(f);\n } catch (d) {}\n }\n },\n incBubbleCount: function() {\n try {\n business.mny.bubble_quotes++;\n } catch (a) {}\n },\n log: function(c, a) {\n try {\n switch (c) {\n case \"quote\":\n if (this.quoteRegistered == false) {\n logMetrics({\n \"action\": c,\n \"data\": {\n \"component\": a\n }\n });\n this.quoteRegistered = true;\n }\n break;\n case \"navclick\":\n case \"navhover\":\n case \"quotehover\":\n logMetrics({\n \"action\": c,\n \"data\": {\n \"component\": a\n }\n });\n break;\n }\n } catch (d) {}\n }\n};\neventLogger.init();\n\nvar cnnm_sourcing = {\n sourceTypes: {\n cnnmoney: \"CNN\",\n fortune: \"FORT\",\n moneymag: \"MONEY\"\n },\n getURLSource: function(a) {\n source = this.sourceTypes.cnnmoney;\n var b = a.split(\"http://\");\n if (b.length > 1) {\n b = b[1].split(\"/\");\n b = b[0];\n }\n if (a.indexOf(\".fortune\") != -1 || a.indexOf(\"magazines/fortune\") != -1) {\n source = this.sourceTypes.fortune;\n }\n if (a.indexOf(\".moneymag\") != -1 || a.indexOf(\"magazines/moneymag\") != -1) {\n source = this.sourceTypes.moneymag;\n }\n switch (b) {\n case (\"features.blogs.fortune.cnn.com\"):\n case (\"finance.fortune.cnn.com\"):\n case (\"management.fortune.cnn.com\"):\n case (\"postcards.blogs.fortune.cnn.com\"):\n case (\"tech.fortune.cnn.com\"):\n case (\"techland.blogs.fortune.cnn.com\"):\n case (\"thewheeldeal.blogs.fortune.cnn.com\"):\n case (\"stanleybing.blogs.fortune.cnn.com\"):\n source = this.sourceTypes.fortune;\n break;\n case (\"moremoney.blogs.money.cnn.com\"):\n case (\"readerschoice.blogs.money.cnn.com\"):\n case (\"helpdesk.blogs.money.cnn.com\"):\n source = this.sourceTypes.moneymag;\n break;\n case (\"cnnmoneytest.wordpress.com\"):\n case (\"cnnmoneytalkback.blogs.cnnmoney.cnn.com\"):\n case (\"smallbusiness.blogs.cnnmoney.cnn.com\"):\n default:\n }\n return source;\n }\n};\n\n/**\n * Sharebar types\n * 1. Main - page level sharing\n * 2. Float - page level sharing\n * 3. Tout/summary - multiple on a page is possible\n *\n * [Meta] URL_____________________ Priority: OG:Url > meta url > location\n * Default - with index.htm Galleries - share first page (w/o index.htm)\n *\n * [Meta] Description_____________________ If sharing a feature list snapshot\n * use - Title Else - H1 tag Else - Meta description Else - Title\n *\n * [Brand] Facebook_____________________ [Brand] Twitter_____________________\n * [Brand] LinkedIn_____________________ [Brand] Google+_____________________\n * [Brand] Pinterest____________________ [Brand] Email &\n * Print_____________________ [Brand] Disqus identifiers_____________________\n *\n * [Brand] Bit.ly_____________________ Twitter - uses shortned URL CNNMoney\n * sourced stories only Postponed - Video, Galleries, Blogs , & other sources\n *\n * Special cases_____________________ Featured lists, snapshots\n *\n * Browser Compatibility_____________________ IE 6 FB - not rendered\n *\n * IE < 9 G+1 - not rendered\n *\n *\n */\nif (typeof CNNM === \"undefined\") {\n var CNNM = {};\n}\nif (typeof cnnmsocial === \"undefined\") {\n var cnnmsocial = {};\n}\n\n\ncnnmsocial.facebook = {\n shareURL: '', // share URL include index.html\n btn_class: 'js-share-fb',\n btnlike_class: 'js-share-fbrec',\n $btn_like: null,\n likereaction: null,\n verb: 'recommend',\n showcount_like: true,\n appID: '',\n killswitch: false,\n\n addbutton: function ($btnsbin, sharedata) {\n\n $btnsbin.append(this.getbutton(sharedata));\n\n var $button = $btnsbin.find('.'+this.btn_class);\n\n this.addshareonlick($button)\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $button;\n }\n },\n addlikebutton: function ($btnsbin) {\n if (CNNM.Social.browser.cnnIE6) {\n return;\n }\n\n //$btnsbin.append(''+this.getlikebutton()+'');\n //this.$btn_like = $btnsbin.parent().find('.'+this.btnlike_class);\n\n },\n addshareonlick: function ($button) {\n if (jQuery.isFunction(jQuery.fn.on)) {\n $button.on(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'facebook', 'height=300,width=665');\n eventLogger.social_track('fb-share');\n return false;\n });\n } else {\n $button.live(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'facebook', 'height=300,width=665');\n eventLogger.social_track('fb-share');\n return false;\n });\n }\n },\n refresh: function ($sharebar) {\n var $button;\n var $buttonlike;\n var newbuttonadded = false;\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n\n $button = $sharebar.find('.'+this.btn_class);\n $buttonlike = $sharebar.find('.'+this.btnlike_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n newbuttonadded = true;\n \n var $button = $sharebar.find('.'+this.btn_class);\n this.addshareonlick($button);\n }\n\n if ($buttonlike.length) {\n $buttonlike.html(this.getlikebutton());\n newbuttonadded = true;\n }\n\n if(newbuttonadded) {\n this.loadscript(); \n }\n },\n /* getbutton can act as a global util function that returns a share button with using sharedata\n or it default to the metadata already defined\n */\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n var button = '';\n var shareurl = (typeof sharedata.url !== 'undefined')? sharedata.url : this.shareURL;\n var sharetitle = (typeof sharedata.title !== 'undefined')? sharedata.title : this.title;\n\n var encodedShareUrl = encodeURIComponent(shareurl);\n var encodedTitle = encodeURIComponent(sharetitle);\n\n button += '';\n\n return button;\n },\n getlikebutton: function () {\n var likebutton = '';\n if (CNNM.Social.browser.cnnIE6) {\n return;\n }\n likebutton = '
');\n\n var stag = document.createElement('script');\n stag.type = 'text/javascript';\n stag.src = '//connect.facebook.net/en_US/all.js#xfbml=1&appId='+cnnmsocial.facebook.appID;\n stag.async = true;\n document.getElementById('fb-root').appendChild(stag);\n } else {\n FB.XFBML.parse();\n }\n },\n\n setAppId: function (source) {\n switch (source) {\n case (cnnm_sourcing.sourceTypes.moneymag):\n cnnmsocial.facebook.appID = '459366314150755';\n break;\n case (cnnm_sourcing.sourceTypes.fortune):\n cnnmsocial.facebook.appID = '381685278607014';\n break;\n default:\n cnnmsocial.facebook.appID = '521848191196480';\n break;\n }\n },\n\n init: function () {\n this.shareURL = CNNM.Social.shareURL;\n this.title = CNNM.Social.shareTitle;\n }\n};\n\ncnnmsocial.twitter = {\n shareURL: '',\n btn_class: 'js-share-tw',\n getCountURL: '',\n bitlyURL: '',\n source: 'CNNMoney',\n related: '',\n description: '',\n count: 'horizontal',\n eventsbound: false, // twitter events are attached see bindevents() below\n killswitch: false,\n via: true,\n\n addbutton: function ($btnsbin, sharedata) {\n $btnsbin.append(this.getbutton(sharedata));\n\n\n var $selector = $btnsbin.find('.' + this.btn_class);\n\n if (jQuery.isFunction(jQuery.fn.on)) {\n $selector.on(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n\n var href = $(this).attr(\"data-href\");\n window.open(href, 'twitter', 'height=300,width=665');\n eventLogger.social_track('twt-tweet');\n return false;\n });\n } else {\n $selector.live(\"click\", function (e) {\n e.preventDefault();\n // Commenting this out because of double-popup\n // jQuery('.popover').removeClass(\"active\");\n // window.open(this.href, 'twitter', 'height=300,width=665');\n // eventLogger.social_track('twt-tweet');\n return false;\n });\n }\n\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n this.loadscript();\n }\n },\n\n /* getbutton can act as a global util function that returns a share button using sharedata\n or it default to the metadata already defined\n */\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n var button = '';\n var description = (typeof sharedata.title !== 'undefined')? sharedata.title : this.description;\n var shareurl = (typeof sharedata.url !== 'undefined')? sharedata.url : this.shareURL;\n var text = '';\n var encodedText = '';\n var relatedText = '';\n\n description = $(\"
\").html(description).text();\n text = description;\n\n /* Page level sharebuttons (sharedata isn't passed in for page lavel sharing.) */\n if (sharedata.url === undefined) {\n if (this.bitlyURL != '') {\n shareurl = this.bitlyURL;\n }\n relatedText = this.related;\n }\n else {\n relatedText = this.getRelated(null);\n }\n\n encodedText = encodeURIComponent(text);\n relatedText = encodeURIComponent(this.related);\n\n button = '' + '';\n\n return button;\n },\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n if (typeof overrides.bitlyURL !== 'undefined') {\n this.bitlyURL = overrides.bitlyURL;\n }\n if (typeof overrides.related !== 'undefined') {\n this.related = overrides.related;\n }\n if (typeof overrides.source !== 'undefined') {\n this.source = overrides.source;\n }\n if (typeof overrides.title !== 'undefined') {\n this.description = overrides.title;\n }\n if (typeof overrides.hashes !== 'undefined') {\n this.description += ' ' + overrides.hashes;\n }\n\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n if (typeof overrides.via !== 'undefined') {\n this.via = overrides.via;\n }\n },\n\n // get default relateds\n getRelated: function (section) {\n var related = '';\n switch (section) {\n case 'Investing' :\n related = 'CNNMoneyInvest';\n break;\n case 'Small Business' :\n related = 'CNNMoneySmBiz';\n break;\n case 'Technology':\n case 'Mobile':\n case 'Enterprise':\n case 'Innovation':\n case 'Security':\n case 'Social':\n related = 'CNNTech:For news and features on the day\\'s hottest technology stories,CNNTechGadgets:For gadget-related news and reviews from our tech team';\n break;\n case 'Personal Finance':\n case 'Real Estate':\n case 'Retirement':\n case 'Autos':\n case 'College':\n case 'Insurance':\n case 'Jobs':\n case 'Taxes':\n related = 'CNNMoneyPF:For news and features on the most compelling personal finance stories';\n break;\n default:\n related = 'CNNMoney:Breaking news and in-depth looks at the most important business stories of the day.';\n break;\n }\n\n return related;\n },\n\n bindevents: function () {\n if (!this.eventsbound) {\n try {\n twttr.ready(function (twttr) {\n twttr.events.bind('click', function(event)\n {eventLogger.social_track('twt-tweet',\n CNNM.Social.socialtrack_URL);} );\n twttr.events.bind('tweet', function (event) {\n eventLogger.social_track('twt-tweet', CNNM.Social.socialtrack_URL);\n });\n twttr.events.bind('retweet', function (event) {\n eventLogger.social_track('twt-retweet', CNNM.Social.socialtrack_URL);\n });\n twttr.events.bind('favorite', function (event) {\n eventLogger.social_track('twt-favorite', CNNM.Social.socialtrack_URL);\n });\n twttr.events.bind('follow', function (event) {\n eventLogger.social_track('twt-follow', CNNM.Social.socialtrack_URL);\n });\n\n // reset track URL\n CNNM.Social.settrackURL();\n });\n this.eventsbound = true;\n } catch (e) {}\n }\n },\n loadscript: function () {\n try {\n if (typeof twttr !== 'undefined') {\n // check for all tweet button on page\n twttr.widgets.load();\n } else {\n // Note: Doesn't work if not on a live site.\n window.twttr = (function (d, s, id) {\n var t, js, fjs = d.getElementsByTagName(s)[0];\n if (d.getElementById(id)) return;\n js = d.createElement(s);\n js.id = id;\n js.src = \"//platform.twitter.com/widgets.js\";\n fjs.parentNode.insertBefore(js, fjs);\n return window.twttr || (t = {\n _e: [],\n ready: function (f) {\n t._e.push(f);\n }\n });\n }(document, \"script\", \"twitter-wjs\"));\n\n /* \n hack fix: popup was showing blank adding button back seems to fix this. \n This hack also had to work for Video playlist share button updates \n */\n var twitterBtns = document.querySelectorAll('.'+cnnmsocial.twitter.btn_class);\n for(i = 0; i < twitterBtns.length; i++) {\n var tempElem = document.createElement('span');\n tempElem.innerHTML = cnnmsocial.twitter.getbutton();\n tempElem.querySelector('a').href = twitterBtns[i].href;\n twitterBtns[i].parentNode.replaceChild(tempElem.childNodes[0], twitterBtns[i]);\n }\n\n // bind events - delay needed for window.twttr to be set\n binder = setTimeout(cnnmsocial.twitter.bindevents, 1500);\n }\n } catch (e) {}\n\n },\n\n customshare: function (shareobj) {\n\n url = encodeURIComponent(shareobj.url);\n desc = encodeURIComponent(shareobj.desc);\n via = '';\n if (typeof (shareobj.via) !== 'undefined') {\n via = '&via=' + shareobj.via;\n }\n\n window_href = 'http://twitter.com/share?count=vertical' + '&original_referer=' + url + '&text=' + desc + '&url=' + url + '&via=' + via;\n window_name = 'intent';\n window_conf = 'left=685, top=350, width=550px, height=380px, scrollbars=no, status=no';\n\n openWindow(window_href, window_name, window_conf);\n // track event\n eventLogger.social_track('twt-tweet', url);\n },\n\n init: function () {\n this.shareURL = CNNM.Social.shareURL;\n this.description = CNNM.Social.shareTitle;\n\n //this.setRelated();\n\n // [DEPRECATED] OVERRIDE - twitter\n if (typeof cnntweetDesc !== 'undefined') {\n this.description = cnntweetDesc;\n }\n\n\n }\n};\n\ncnnmsocial.linkedin = {\n shareURL: '',\n btn_class: 'js-share-linkedin',\n source: 'CNNMoney',\n description: '',\n linkedInLoaded : false,\n killswitch: true,\n\n addbutton: function ($btnsbin, sharedata) {\n $btnsbin.append(this.getbutton(sharedata));\n\n\n var $selector = $btnsbin.find(' .'+this.btn_class);\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n cnnmsocial.linkedin.linkedInLoaded = false;\n }\n },\n\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n var button = '';\n var shareurl = (typeof sharedata.url !== 'undefined')? sharedata.url : this.shareURL;\n var sharetitle = (typeof sharedata.title !== 'undefined')? sharedata.title : this.description;\n\n var encodedShareUrl = encodeURIComponent(shareurl + '?source=linkedin');\n var encodedTitle = encodeURIComponent(sharetitle);\n\n var newwindowProperties = 'scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=600,height=450,left=0,top=0';\n var linkedinURL = href='http://www.linkedin.com/shareArticle?mini=true&'\n + 'source=' + this.source + '&url=' + encodedShareUrl\n + '&title=' + encodedTitle;\n linkedinURL = linkedinURL.replace(/[\"']/g,'\\\\$&');\n\n button += '' + '';\n return button;\n },\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n if (typeof overrides.title !== 'undefined') {\n this.description = overrides.title;\n }\n if (typeof overrides.source !== 'undefined') {\n this.setSource(overrides.source);\n }\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n\n },\n setSource: function (source) {\n // Set variables for each brand\n switch (source) {\n case (cnnm_sourcing.sourceTypes.moneymag):\n this.source = 'Money Magazine';\n break;\n case (cnnm_sourcing.sourceTypes.fortune):\n this.source = 'Fortune Magazine';\n break;\n default:\n this.source = 'CNNMoney';\n break;\n }\n },\n\n\n loadscript: function() {\n if( !jQuery(\"#linkedin_script\").length )\n {\n jQuery('head').append('
');\n }\n\n var stag = document.createElement('script');\n stag.type = 'text/javascript';\n stag.src = 'http://platform.linkedin.com/in.js';\n document.getElementById('linkedin_script').appendChild(stag);\n\n\n },\n\n init: function () {\n this.shareURL = CNNM.Social.shareURL;\n this.description = CNNM.Social.shareTitle;\n this.setSource(CNNM.Social.source);\n }\n};\n\ncnnmsocial.gplus = {\n shareURL: '',\n btn_class: 'js-share-gplus',\n annotation: 'bubble',\n killswitch: false,\n\n addbutton: function ($btnsbin, sharedata) {\n $btnsbin.append(this.getbutton(sharedata));\n\n var $selector = $btnsbin.find('.'+this.btn_class);\n\n if (jQuery.isFunction(jQuery.fn.on)) {\n $selector.on(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'gplus', 'height=400,width=665');\n eventLogger.social_track('goog-plus');\n return false;\n });\n } else {\n $selector.live(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'gplus', 'height=500,width=480');\n eventLogger.social_track('goog-plus');\n return false;\n });\n }\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n }\n },\n\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n var shareurl = sharedata.url || this.shareURL;\n var encodedUrl = encodeURIComponent(shareurl);\n\n return '' + '' + '';\n },\n\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n if (typeof overrides.annotation !== 'undefined') {\n this.annotation = overrides.annotation;\n }\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n },\n init: function () {\n this.shareURL = CNNM.Social.shareURL;\n }\n};\n\n/**\n * global namespace function defined by google specs\n */\ngplus_track = function (jvar) {\n eventLogger.social_track('goog-plus');\n};\n\n\ncnnmsocial.pinterest = {\n shareURL: '',\n btn_class: 'js-share-pinterest',\n imageURL: '',\n description: '',\n killswitch: false,\n\n addbutton: function ($btnsbin, sharedata) {\n $btnsbin.append(this.getbutton(sharedata));\n\n var $selector = $btnsbin.find(' .'+this.btn_class);\n\n if (jQuery.isFunction(jQuery.fn.on)) {\n $selector.on(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'pinterest', 'height=300,width=665');\n eventLogger.social_track('pin-share');\n return false;\n });\n } else {\n $selector.live(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'pinterest', 'height=300,width=665');\n eventLogger.social_track('pin-share');\n return false;\n });\n }\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n }\n },\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n var button;\n var shareurl = sharedata.url || this.shareURL;\n var sharetitle = sharedata.title || this.description;\n var shareimage = sharedata.image || this.imageURL;\n var encodedUrl = encodeURIComponent(shareurl);\n var encodedImgUrl = encodeURIComponent(shareimage);\n var encodedDesc = encodeURIComponent(sharetitle);\n\n var is_video = \"false\";\n if (CNNM.Social.pagetype == CNNM.Social.pagetypes.video) {\n is_video = \"true\";\n }\n\n button = '' + '' + '';\n\n return button;\n },\n\n\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n if (typeof overrides.image !== 'undefined') {\n this.imageURL = overrides.image;\n }\n if (typeof overrides.description !== 'undefined') {\n this.description = overrides.description;\n }\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n },\n loadscript: function () {},\n init: function () {\n this.shareURL = CNNM.Social.shareURL;\n this.imageURL = CNNM.Social.shareImage;\n this.description = CNNM.Social.shareTitle;\n }\n};\n\ncnnmsocial.reddit = {\n shareURL: '',\n btn_class : 'js-share-reddit',\n title: '',\n killswitch: false,\n\n addbutton: function ($btnsbin, sharedata) {\n $btnsbin.append(this.getbutton(sharedata));\n\n var $selector = $btnsbin.find('.'+this.btn_class);\n\n if (jQuery.isFunction(jQuery.fn.on)) {\n $selector.on(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'reddit', 'height=600,width=850');\n eventLogger.social_track('reddit-share');\n return false;\n });\n } else {\n\n $selector.live(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'reddit', 'height=600,width=850');\n eventLogger.social_track('reddit-share');\n return false;\n });\n }\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n }\n },\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n var shareurl = sharedata.url || this.shareURL;\n var sharetitle = sharedata.title || this.title;\n var encodedUrl = encodeURIComponent(shareurl);\n var encodedTitle = encodeURIComponent(sharetitle);\n var href = 'http://www.reddit.com/submit?' + 'url=' + encodedUrl + '&title=' + encodedTitle;\n\n return '' + '';\n },\n\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n if (typeof overrides.title !== 'undefined') {\n this.title = overrides.title;\n }\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n },\n init: function () {\n this.shareURL = CNNM.Social.shareURL;\n this.title = CNNM.Social.shareTitle;\n }\n};\n\ncnnmsocial.stumbleupon = {\n shareURL: '',\n btn_class : 'js-share-stumbleupon',\n title: '',\n killswitch: false,\n\n addbutton: function ($btnsbin, sharedata) {\n $btnsbin.append(this.getbutton(sharedata));\n\n var $selector = $btnsbin.find(' .'+this.btn_class);\n\n if (jQuery.isFunction(jQuery.fn.on)) {\n $selector.on(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'stumbleupon', 'height=600,width=850');\n eventLogger.social_track('stumbleupon-share');\n return false;\n });\n } else {\n $selector.live(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n window.open(this.href, 'stumbleupon', 'height=600,width=850');\n eventLogger.social_track('stumbleupon-share');\n return false;\n });\n }\n\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n }\n },\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n var shareurl = sharedata.url || this.shareURL;\n var sharetitle = sharedata.title || this.title;\n var encodedUrl = encodeURIComponent(shareurl);\n var encodedTitle = encodeURIComponent(sharetitle);\n var href = 'http://www.stumbleupon.com/submit?' + 'url=' + encodedUrl + '&title=' + encodedTitle;\n\n return '' + '';\n\n },\n\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n if (typeof overrides.title !== 'undefined') {\n this.title = overrides.title;\n }\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n },\n init: function () {\n this.shareURL = CNNM.Social.shareURL;\n this.title = CNNM.Social.shareTitle;\n }\n};\n\ncnnmsocial.email = {\n shareURL: '',\n btn_class : 'js-share-mail',\n shareTitle: '',\n shareText: '',\n buttontag_contents: '', /* share icon */\n killswitch: true,\n\n addbutton: function ($btnsbin, sharedata) {\n $btnsbin.append(this.getbutton(sharedata));\n\n var $selector = $btnsbin.find('.'+this.btn_class);\n\n if (jQuery.isFunction(jQuery.fn.on)) {\n $selector.on(\"mousedown\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n eventLogger.social_track('email');\n return false;\n });\n } else {\n $selector.live(\"mousedown\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n eventLogger.social_track('email');\n return false;\n });\n }\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n this.loadscript();\n }\n },\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n var shareurl = sharedata.url || this.shareURL;\n var sharetitle = sharedata.title || this.shareTitle;\n\n sharetitle = encodeURIComponent(sharetitle);\n this.shareText = 'Check out this story on CNNMoney: ' + shareurl;\n this.shareText = encodeURIComponent(this.shareText);\n\n return '';\n },\n setoverrides: function (overrides) {\n overrides = overrides || {};\n // overrides don't work, sharethis must get the properties from meta\n // data\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n if (typeof overrides.title !== 'undefined') {\n this.shareTitle = overrides.title;\n }\n\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n },\n loadscript: function () {\n try {\n if (jQuery('.st_email_custom').length) {\n\n // settings\n stLight.options({\n publisher: 'b8241a5c-6fa7-404a-9989-13f94cdfff16',\n url: this.shareURL,\n title: this.shareTitle,\n text : this.shareText,\n // offsetTop:'300',\n // offsetLeft:'0',\n onhover: false\n });\n stButtons.locateElements();\n }\n } catch (e) {}\n },\n\n init: function () {\n\n this.shareURL = CNNM.Social.shareURL;\n this.shareTitle = CNNM.Social.shareTitle;\n }\n};\n\ncnnmsocial.print = {\n btn_class : 'js-share-print',\n buttontag_contents: '', /* share icon */\n killswitch: false,\n\n\n addbutton: function ($btnsbin, sharedata) {\n $btnsbin.append('
  • '+this.getbutton()+'
  • ');\n\n var $selector = '.'+this.btn_class;\n\n if (jQuery.isFunction(jQuery.fn.on)) {\n $selector.on(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n cnnmsocial.print.print();\n eventLogger.social_track('print');\n return false;\n });\n } else {\n $selector.live(\"click\", function (e) {\n e.preventDefault();\n jQuery('.popover').removeClass(\"active\");\n cnnmsocial.print.print();\n eventLogger.social_track('print');\n return false;\n });\n }\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.getbutton());\n }\n },\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n\n return '';\n\n },\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n },\n print: function () {\n\n // FDCPUrl();\n // removing format dynamics issues is fixed\n window.print();\n return false;\n },\n init: function () {\n\n this.shareURL = CNNM.Social.shareURL;\n }\n};\n\ncnnmsocial.embed = {\n shareURL: '',\n btn_class : 'js-share-embed',\n shareTitle: '',\n buttontag_contents: '', /* share icon */\n embedscript: '',\n killswitch: true,\n\n addbutton: function ($btnsbin, sharedata) {\n this.setbutton();\n $btnsbin.append(this.buttontag_contents);\n\n var $selector = $btnsbin.find('.'+this.btn_class+'');\n\n $selector.on(\"click\", function (e) {\n var $self = jQuery(this);\n e.preventDefault();\n \n /* remove active class from popovers before adding it to this element */\n jQuery(\".popover, .popup-menu\").each(function () {\n if ( !jQuery(this).is($self.children()[0]) ) {\n jQuery(this).removeClass(\"active\");\n }\n });\n\n jQuery(this).find('.popover').toggleClass(\"active\");\n eventLogger.social_track('embed');\n jQuery('#embedCode')\n .val(cnnmsocial.embed.embedscript)\n .focus(\n function () {\n $(this).select();\n }\n )\n .mouseup(\n function (e) {\n e.preventDefault();\n }\n ).trigger('focus');\n return false;\n });\n\n jQuery('html').on('click', function (e) {\n if (jQuery(e.target).closest('.popover').get(0) == null) {\n jQuery('.popover').removeClass(\"active\");\n }\n });\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.buttontag_contents);\n }\n },\n setbutton: function () {\n\n this.buttontag_contents = '' + '
    ' + '
    Embed
    ' + '' + '
    ';\n this.setembedscript();\n\n },\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n },\n setembedscript: function () {\n\n var videoId = this.shareURL;\n var actualhost = location.host;\n var embedHost = 'i.cdn.turner.com/money';\n // extract video id from URL ex:\n // /video/news/2012/04/19/f-bsg-cargill-food.fortune\n videoId = videoId.replace('http://money.cnn.com/', '');\n indexLoc = videoId.indexOf('index.htm');\n videoId = (indexLoc != -1) ? videoId.substring(0, indexLoc) : videoId;\n videoId = (videoId.charAt(videoId.length - 1) == '/') ? videoId.substring(0, videoId.length - 1) : videoId;\n\n /* Set embed script to Test environments to allow for testing where possible - REF, DEV, TRAIN */\n if ( (actualhost.indexOf('preview2.ref') > -1) ||\n (actualhost.indexOf('dev.money.cnn.com') > -1) ||\n (actualhost.indexOf('ref2.money.cnn.com') > -1) ||\n (actualhost.indexOf('train.money') > -1) ) {\n embedHost = actualhost;\n }\n\n\n this.embedscript = \"\";\n },\n\n init: function () {\n\n this.shareURL = CNNM.Social.shareURL;\n }\n};\n\ncnnmsocial.link = {\n shareURL: '',\n btn_class : 'js-share-link',\n buttontag_contents: '', /* share icon */\n killswitch: true,\n\n\n addbutton: function ($btnsbin, sharedata) {\n this.setbutton();\n $btnsbin.append(this.buttontag_contents);\n\n var $selector = $btnsbin.find('.'+this.btn_class);\n\n $selector.on(\"click\", function (e) {\n var $self = jQuery(this);\n e.preventDefault();\n \n /* remove active class from popovers before adding it to this element */\n jQuery(\".popover, .popup-menu\").each(function () {\n if ( !jQuery(this).is($self.children()[0]) ) {\n jQuery(this).removeClass(\"active\");\n }\n });\n\n jQuery(this).find('.popover').toggleClass(\"active\");\n eventLogger.social_track('link');\n jQuery('#linkValue')\n .val(cnnmsocial.link.shareURL)\n .focus(\n function () {\n $(this).select();\n }\n )\n .mouseup(\n function (e) {\n e.preventDefault();\n }\n ).trigger('focus');\n return false;\n });\n\n jQuery('html').on('click', function (e) {\n if (jQuery(e.target).closest('.popover').get(0) == null) {\n jQuery('.popover').removeClass(\"active\");\n }\n });\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n },\n refresh: function ($sharebar) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $button = $sharebar.find('.'+this.btn_class);\n\n if ($button.length) {\n $button.replaceWith(this.buttontag_contents);\n }\n },\n setbutton: function () {\n\n this.buttontag_contents = '' + '
    ' + '
    Link
    ' + '' + '
    ';\n\n },\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n if (typeof overrides.url !== 'undefined') {\n this.shareURL = overrides.url;\n }\n },\n init: function () {\n\n this.shareURL = CNNM.Social.shareURL;\n }\n};\n\ncnnmsocial.bitly = {\n /**\n * post: updates bitly URL\n */\n getbitlyURL: function () {\n bitlyGrab = $('link[rel=shortlink]').eq(0).attr('href');\n\n bitlyurl = (typeof bitlyGrab !== 'undefined') ? bitlyGrab : '';\n\n if (bitlyurl != '') {\n CNNM.Social.bitlyupdate(bitlyurl);\n }\n }\n};\n\ncnnmsocial.morebutton = {\n shareURL: '',\n btn_class: 'js-share-more',\n popupclass: 'js-share-more-popup',\n sharelist : [], /* list of third partner objects defined above that we are adding to popup menu (ex: cnnm.social.reddit) */\n $popupmenu: null,\n killswitch: true,\n\n\n addbutton: function ($btnsbin, sharedata) {\n if(this.sharelist.length == 0) {\n return;\n }\n\n $btnsbin.append(this.getbutton(sharedata));\n\n var $selector = $btnsbin.find('.'+this.btn_class);\n if (jQuery.isFunction(jQuery.fn.on)) {\n $selector.on(\"click\", function (e) {\n var $self = jQuery(this);\n e.preventDefault();\n \n /* remove active class from popovers before adding it to this element */\n jQuery(\".popover, .popup-menu\").each(function () {\n if ( !jQuery(this).is($self.children()[0]) ) {\n jQuery(this).removeClass(\"active\");\n }\n });\n\n jQuery(this).find('.' + cnnmsocial.morebutton.popupclass).toggleClass(\"active\");\n return false;\n });\n\n jQuery('html').on('click', function (e) {\n if (jQuery(e.target).closest('.' + cnnmsocial.morebutton.popupclass).get(0) == null) {\n jQuery('.' + cnnmsocial.morebutton.popupclass).removeClass(\"active\");\n }\n });\n\n } else {\n $selector.live(\"click\", function (e) {\n var $self = jQuery(this);\n e.stopPropagation();\n e.preventDefault();\n \n /* remove active class from popovers before adding it to this element */\n jQuery(\".popover, .popup-menu\").each(function () {\n if ( !jQuery(this).is($self.children()[0]) ) {\n jQuery(this).removeClass(\"active\");\n }\n });\n\n jQuery(this).find('.' + cnnmsocial.morebutton.popupclass).toggleClass(\"active\");\n return false;\n });\n\n jQuery('html').live('click', function (e) {\n if (jQuery(e.target).closest('.' + cnnmsocial.morebutton.popupclass).get(0) == null) {\n jQuery('.' + cnnmsocial.morebutton.popupclass).removeClass(\"active\");\n }\n });\n }\n\n /* set button element selector for page level share button */\n if(typeof sharedata === 'undefined') {\n this.$btn = $selector;\n }\n this.addpopupmenu($btnsbin.find('.'+this.popupclass), sharedata);\n },\n /* $bin element where to add popup buttons */\n addpopupmenu: function ($popupmenu, sharedata) {\n sharedata = sharedata || {};\n var sharemenulist = this.sharelist;\n\n if(typeof sharedata !== 'undefined') {\n sharemenulist = (sharedata.morelist) || sharemenulist;\n }\n for(i = 0; i < sharemenulist.length; i++) {\n sharemenulist[i].addbutton($popupmenu);\n }\n },\n getbutton: function (sharedata) {\n sharedata = sharedata || {};\n return '
    ';\n },\n setsharelist: function(shareArray) {\n this.sharelist = shareArray;\n },\n setoverrides: function (overrides) {\n overrides = overrides || {};\n if (typeof overrides.killswitch !== 'undefined') {\n this.killswitch = overrides.killswitch;\n }\n },\n refresh: function ($sharebar, sharedata) {\n var $button;\n\n if (typeof $sharebar === 'undefined' || $sharebar == null) {\n return;\n }\n $popupmenu = $sharebar.find('.'+this.popupclass);\n $popupmenu.empty();\n this.addpopupmenu($popupmenu, sharedata);\n },\n init: function () {\n }\n};\n\nCNNM.Social = {\n\n sharebars: {\n $main: null,\n $main_btnsbins: null,\n $float: null,\n $float_btnsbins: null\n },\n\n buttonset_main : [],\n buttonset_more : [], /* share buttons that will appear in the more button popup list */\n\n enableRefresh: false,\n\n positions: {\n float_start_selector: '.js-social-anchor-start',\n float_end_selector: '.js-social-anchor-end',\n float_start: 0,\n float_end: 9999,\n is_floating: false,\n float_hidden: true,\n scroll_last_position: 0\n },\n\n pagetypes: {\n story: 1,\n video: 2,\n gallery: 3,\n quiz: 4,\n poll: 5,\n listspecial: 6,\n calc: 7\n },\n pagetype: 0,\n shareURL: 'http:\\/\\/' + location.host + location.pathname,\n sharePath: location.pathname, // include file name\n bitlyURL: '',\n\n shareTitle: document.title,\n shareImage: '',\n source: '',\n\n showcount: true,\n\n socialtrack_URL: null, // used by eventLogger.social_track() in\n // adbp.eventlogger.js for JSMD's social tracking.\n // Needed for FB and Twitter where tracking called\n // in callback function.\n\n\n // Browser Flags\n browser: {\n win: (navigator.platform.toLowerCase().indexOf('win32') == -1) ? \"\" : \" win\",\n mac: (navigator.platform.toLowerCase().indexOf('mac') == -1) ? false : true,\n cnnIE: (navigator.userAgent.toLowerCase().indexOf('msie') == -1) ? false : true,\n cnnIE6: (navigator.userAgent.toLowerCase().indexOf('msie 6') == -1) ? false : true,\n cnnIE7: (navigator.userAgent.toLowerCase().indexOf('msie 7') == -1) ? false : true,\n cnnIE8: (navigator.userAgent.toLowerCase().indexOf('msie 8') == -1) ? false : true,\n cnnFF: (navigator.userAgent.toLowerCase().indexOf('firefox') == -1) ? false : true,\n cnnChrome: (navigator.userAgent.toLowerCase().indexOf('chrome') == -1) ? false : true\n },\n\n // Helper function: determine page type\n setpagetype: function () {\n if (this.shareURL.match('/video/')) {\n this.pagetype = this.pagetypes.video;\n } else if (this.shareURL.match('/galleries/') || this.shareURL.match('/gallery/')) {\n this.pagetype = this.pagetypes.gallery;\n } else if (this.shareURL.match('/quizzes/')) {\n this.pagetype = this.pagetypes.quiz;\n } else if (this.shareURL.match('/poll/')) {\n this.pagetype = this.pagetypes.poll;\n } else if (this.shareURL.match('/tools/') || this.shareURL.match('/calculator/')) {\n this.pagetype = this.pagetypes.calc;\n } else {\n this.pagetype = this.pagetypes.story;\n }\n\n if ((typeof cnnmsoc_overrides !== 'undefined') && (typeof cnnmsoc_overrides.global !== 'undefined') && (typeof cnnmsoc_overrides.global.pagetype !== 'undefined')) {\n switch (cnnmsoc_overrides.global.pagetype) {\n case ('story'):\n case ('video'):\n case ('gallery'):\n case ('quiz'):\n case ('poll'):\n case ('listspecial'):\n case ('calculator'):\n this.pagetype = this.pagetypes[cnnmsoc_overrides.global.pagetype];\n break;\n default:\n break;\n }\n }\n },\n\n setbuttonsets: function () {\n /* set default list */\n switch (this.pagetype) {\n case (this.pagetypes.video):\n\n if(!cnnmsocial.link.killswitch) {\n this.buttonset_main.push(cnnmsocial.link);\n }\n if(!cnnmsocial.embed.killswitch) {\n this.buttonset_main.push(cnnmsocial.embed);\n }\n\n // case (this.pagetypes.story):\n // case (this.pagetypes.gallery):\n // case (this.pagetypes.quiz):\n // case (this.pagetypes.poll):\n // case (this.pagetypes.calc):\n // case (this.pagetypes.listspecial):\n default:\n /* Main set */\n if (!cnnmsocial.linkedin.killswitch) {\n this.buttonset_main.unshift(cnnmsocial.linkedin);\n }\n if (!cnnmsocial.twitter.killswitch) {\n this.buttonset_main.unshift(cnnmsocial.twitter);\n }\n if (!cnnmsocial.facebook.killswitch) {\n this.buttonset_main.unshift(cnnmsocial.facebook);\n }\n if (!cnnmsocial.email.killswitch) {\n this.buttonset_main.unshift(cnnmsocial.email);\n }\n\n break;\n }\n\n\n if (!cnnmsocial.morebutton.killswitch) {\n this.buttonset_main.push(cnnmsocial.morebutton);\n\n /* More set */\n if(!cnnmsocial.pinterest.killswitch) {\n this.buttonset_more.push(cnnmsocial.pinterest);\n }\n if(!cnnmsocial.stumbleupon.killswitch) {\n this.buttonset_more.push(cnnmsocial.stumbleupon);\n }\n if (!cnnmsocial.gplus.killswitch) {\n this.buttonset_more.push(cnnmsocial.gplus);\n }\n if(!cnnmsocial.reddit.killswitch) {\n this.buttonset_more.push(cnnmsocial.reddit);\n }\n\n /* set more list */\n cnnmsocial.morebutton.setsharelist(this.buttonset_more);\n\n }\n\n },\n\n setsharedata: function () {\n this.source = cnnm_sourcing.getURLSource(this.shareURL);\n\n var metaurl = jQuery('link[rel=\"canonical\"]').attr('href');\n var metaurl_og = jQuery('meta[property=\"og:url\"]').attr('content');\n var metatitle = jQuery('meta[name=\"title\"]').attr('content');\n var metatitle_og = jQuery('meta[property=\"og:title\"]').attr('content');\n var metaimage_og = jQuery('meta[property=\"og:image\"]').attr('content');\n\n if (typeof metaurl_og !== 'undefined' && metaurl_og != '') {\n this.shareURL = metaurl_og;\n } else if (typeof metaurl !== 'undefined' && metaurl != '') {\n this.shareURL = metaurl;\n }\n\n // Set test pages to share live URLs\n this.shareURL = this.shareURL.replace('moneypreview.turner.com:86', 'money.cnn.com');\n this.shareURL = this.shareURL.replace('jcmsprod.cnn.com:86', 'money.cnn.com');\n this.shareURL = this.shareURL.replace('money.qai.cnn.com', 'money.cnn.com');\n this.shareURL = this.shareURL.replace('localhost.cnn.com/money', 'money.cnn.com');\n\n // sharePath\n this.sharePath = this.sharePath.replace('//', '/');\n split = this.sharePath.split('.com/');\n if (split.length > 1) {\n this.sharePath = '/' + split[1];\n }\n\n if (typeof metaimage_og !== 'undefined' && metaimage_og != '') {\n this.shareImage = metaimage_og;\n }\n\n this.setpagetype();\n\n // Set share social title/description\n if (typeof metatitle_og !== 'undefined' && metatitle_og != '') {\n this.shareTitle = metatitle_og;\n } else if (typeof metatitle !== 'undefined' && metatitle != '') {\n this.shareTitle = metatitle;\n }\n\n var h1s = document.getElementsByTagName('h1');\n\n if (this.pagetype == this.pagetypes.listspecial) {\n this.shareTitle = document.title;\n } else if (h1s.length == 1) {\n this.shareTitle = jQuery.trim(h1s[0].innerHTML);\n }\n this.shareTitle = this.shareTitle.replace(/<(?:.|\\s)*?>/g, '');\n\n // Set Share URLs\n /*\n * Quizzes have multiple pages should default to first page for\n * linkedin, facebook, + twitter\n */\n switch (this.pagetype) {\n case (this.pagetypes.quiz):\n multipageURL = '';\n if (this.shareURL.indexOf('index.html') != -1) {\n var lastPos = this.shareURL.lastIndexOf('index.html');\n multipageURL = this.shareURL.substring(0, lastPos);\n // var lastPos2 = this.sharePath.lastIndexOf('index.html');\n // this.sharePath = this.sharePath.substring(0,lastPos2);\n } else if (this.shareURL.indexOf('.html') != -1) { // make sure it\n // ends in '/'\n var lastPos = this.shareURL.lastIndexOf('\\/');\n multipageURL = this.shareURL.substring(0, lastPos) + '/';\n // var lastPos2 = this.sharePath.lastIndexOf('\\/');\n // this.sharePath = this.sharePath.substring(0,lastPos2)+'/';\n } else {\n if (this.shareURL.charAt(this.shareURL.length - 1) == '/') {\n multipageURL = this.shareURL;\n } else {\n multipageURL = this.shareURL + '/';\n this.sharePath = this.sharePath + '/';\n }\n }\n\n // always set share URL for galleries to first page (w/o index.htm)\n // to share entire gallery\n this.shareURL = multipageURL;\n break;\n default:\n break;\n }\n\n cnnmsocial.facebook.init();\n cnnmsocial.twitter.init();\n cnnmsocial.linkedin.init();\n cnnmsocial.gplus.init();\n cnnmsocial.pinterest.init();\n cnnmsocial.reddit.init();\n cnnmsocial.stumbleupon.init();\n cnnmsocial.email.init();\n cnnmsocial.print.init();\n cnnmsocial.embed.init();\n cnnmsocial.link.init();\n\n },\n\n // Uses cnnmsoc_overrides if defined else input. input trumps\n // cnnmsoc_overrides is an older version how we used to set overrides\n setoverrides: function (input) {\n if (typeof input !== 'undefined') {\n cnnmsoc_overrides = input;\n }\n\n if (typeof cnnmsoc_overrides === 'undefined') {\n return;\n }\n\n if (typeof cnnmsoc_overrides.global !== 'undefined') {\n if (typeof cnnmsoc_overrides.global.floatstartselector !== 'undefined') {\n this.positions.float_start_selector = cnnmsoc_overrides.global.floatstartselector;\n }\n if (typeof cnnmsoc_overrides.global.floatendselector !== 'undefined') {\n this.positions.float_end_selector = cnnmsoc_overrides.global.floatendselector;\n }\n if (typeof cnnmsoc_overrides.global.url !== 'undefined') {\n this.shareURL = cnnmsoc_overrides.global.url;\n cnnmsocial.facebook.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.twitter.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.linkedin.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.gplus.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.pinterest.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.reddit.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.stumbleupon.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.email.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.link.setoverrides({\n url: this.shareURL\n });\n cnnmsocial.embed.setoverrides({\n url: this.shareURL\n });\n }\n if (typeof cnnmsoc_overrides.global.bitlyurl !== 'undefined') {\n // override all social items that use bitly\n this.bitlyURL = cnnmsoc_overrides.global.bitlyurl;\n\n cnnmsocial.twitter.setoverrides({\n bitlyURL: this.bitlyURL\n });\n }\n if (typeof cnnmsoc_overrides.global.title !== 'undefined') {\n this.shareTitle = cnnmsoc_overrides.global.title;\n\n cnnmsocial.twitter.setoverrides({\n title: this.shareTitle\n });\n cnnmsocial.linkedin.setoverrides({\n title: this.shareTitle\n });\n cnnmsocial.pinterest.setoverrides({\n description: this.shareTitle\n });\n cnnmsocial.reddit.setoverrides({\n title: this.shareTitle\n });\n cnnmsocial.stumbleupon.setoverrides({\n title: this.shareTitle\n });\n cnnmsocial.email.setoverrides({\n title: this.shareTitle\n });\n }\n if (typeof cnnmsoc_overrides.global.image !== 'undefined') {\n this.shareImage = cnnmsoc_overrides.global.image;\n\n cnnmsocial.pinterest.setoverrides({\n image: this.shareImage\n });\n }\n if (typeof cnnmsoc_overrides.global.source !== 'undefined') {\n this.source = cnnmsoc_overrides.global.source;\n\n cnnmsocial.twitter.setoverrides({\n source: this.source\n });\n cnnmsocial.linkedin.setoverrides({\n source: this.source\n });\n }\n if (typeof cnnmsoc_overrides.global.showcount !== 'undefined') {\n this.showcount = cnnmsoc_overrides.global.showcount;\n\n if (this.showcount) {\n cnnmsocial.facebook.setoverrides({\n showcount_like: true\n });\n cnnmsocial.twitter.setoverrides({\n count: 'vertical'\n });\n cnnmsocial.gplus.setoverrides({\n annotation: 'bubble'\n });\n } else {\n cnnmsocial.facebook.setoverrides({\n showcount_like: false\n });\n cnnmsocial.twitter.setoverrides({\n count: 'none'\n });\n cnnmsocial.gplus.setoverrides({\n annotation: 'none'\n });\n }\n }\n\n }\n // Brand specific overrides\n if (typeof cnnmsoc_overrides.facebook !== 'undefined') {\n cnnmsocial.facebook.setoverrides(cnnmsoc_overrides.facebook);\n }\n if (typeof cnnmsoc_overrides.twitter !== 'undefined') {\n cnnmsocial.twitter.setoverrides(cnnmsoc_overrides.twitter);\n }\n if (typeof cnnmsoc_overrides.linkedin !== 'undefined') {\n cnnmsocial.linkedin.setoverrides(cnnmsoc_overrides.linkedin);\n }\n if (typeof cnnmsoc_overrides.gplus !== 'undefined') {\n cnnmsocial.gplus.setoverrides(cnnmsoc_overrides.gplus);\n }\n if (typeof cnnmsoc_overrides.pinterest !== 'undefined') {\n cnnmsocial.pinterest.setoverrides(cnnmsoc_overrides.pinterest);\n }\n if (typeof cnnmsoc_overrides.reddit !== 'undefined') {\n cnnmsocial.reddit.setoverrides(cnnmsoc_overrides.reddit);\n }\n if (typeof cnnmsoc_overrides.stumbleupon !== 'undefined') {\n cnnmsocial.stumbleupon.setoverrides(cnnmsoc_overrides.stumbleupon);\n }\n if (typeof cnnmsoc_overrides.email !== 'undefined') {\n cnnmsocial.email.setoverrides(cnnmsoc_overrides.email);\n }\n if (typeof cnnmsoc_overrides.print !== 'undefined') {\n cnnmsocial.print.setoverrides(cnnmsoc_overrides.print);\n }\n if (typeof cnnmsoc_overrides.link !== 'undefined') {\n cnnmsocial.link.setoverrides(cnnmsoc_overrides.link);\n }\n if (typeof cnnmsoc_overrides.embed !== 'undefined') {\n cnnmsocial.embed.setoverrides(cnnmsoc_overrides.embed);\n }\n },\n\n addsharebar_main: function () {\n var topbar = '
    ';\n\n // check - Anchor already on page?\n $existingAnchor = jQuery('#js-sharebar-main');\n if ($existingAnchor.length) {\n $existingAnchor.html(topbar);\n }\n\n // set share containers of added sharebar\n this.sharebars.$main = $existingAnchor;\n this.sharebars.$main_btnsbins = this.sharebars.$main.find('#js-sharebar-main-bin');\n },\n\n addsharebar_float: function () {\n var topbar = '
    ';\n\n // check - Anchor already on page?\n var $existingAnchor = jQuery('#js-sharebar-floater');\n if ($existingAnchor.length) {\n $existingAnchor.html(topbar);\n }\n else {\n return;\n }\n\n // set share containers of added sharebar\n this.sharebars.$float = jQuery('#js-sharebar-floater');\n this.sharebars.$float_btnsbins = this.sharebars.$float.find('#js-sharebar-floater-bin');\n },\n\n addsocialbuttons: function () {\n /* main share bar */\n if (this.sharebars.$main_btnsbins.length) {\n /* clear share bar */\n this.sharebars.$main_btnsbins.html('');\n\n for (var i = 0; i < this.buttonset_main.length; i++) {\n this.buttonset_main[i].addbutton(this.sharebars.$main_btnsbins);\n }\n\n /* FB like/recommend button for content pages */\n switch (this.pagetype) {\n case (this.pagetypes.story):\n case (this.pagetypes.video):\n case (this.pagetypes.gallery):\n case (this.pagetypes.quiz):\n case (this.pagetypes.poll):\n case (this.pagetypes.calc):\n case (this.pagetypes.listspecial):\n if (!cnnmsocial.facebook.killswitch) {\n cnnmsocial.facebook.addlikebutton(this.sharebars.$main_btnsbins);\n }\n break;\n default:\n break;\n }\n\n }\n\n /* floating share bar */\n if (this.sharebars.$float_btnsbins !== null) {\n /* clear share bar */\n this.sharebars.$float_btnsbins.html('');\n\n for (var n = 0; n < this.buttonset_main.length; n++) {\n this.buttonset_main[n].addbutton(this.sharebars.$float_btnsbins);\n }\n }\n\n },\n\n /* Set sharebars for touts/summaries */\n addtoutshares : function () {\n var sharemenus = jQuery('.js-sharebar-tout');\n\n sharemenus.each(function(index, elem){\n var metadata = {};\n var mainset_str = '';\n var moreset_str = '';\n var mainsharelist = [];\n var moresharelist = [];\n var moresharelistObs = [];\n var $elem = jQuery(elem);\n\n /* get metadata */\n metadata = {url : $elem.attr('data-url'),\n title : $elem.attr('data-title')\n };\n mainset_str = $elem.attr('data-mainset') || mainset_str;\n moreset_str = $elem.attr('data-moreset') || moreset_str;\n mainsharelist = mainset_str.replace(/, /g, ',').split(',');\n moresharelist = moreset_str.replace(/, /g, ',').split(',');\n\n\n if ($elem.attr('data-image') !== undefined) {\n metadata.image = $elem.attr('data-image');\n }\n\n /* reset/clear sharebar */\n $elem.html('');\n\n for (var i = 0; i < moresharelist.length; i++) {\n /* add button */\n try{\n switch(moresharelist[i]) {\n case('fb'):\n moresharelistObs.unshift(cnnmsocial.facebook);\n break;\n case('email'):\n moresharelistObs.unshift(cnnmsocial.email.addbutton);\n break;\n case('tw'):\n moresharelistObs.unshift(cnnmsocial.twitter.addbutton);\n break;\n case('linkedin'):\n moresharelistObs.unshift(cnnmsocial.linkedin.addbutton);\n break;\n case('pinterest'):\n moresharelistObs.unshift(cnnmsocial.pinterest.addbutton);\n break;\n case('gplus'):\n moresharelistObs.unshift(cnnmsocial.gplus.addbutton);\n break;\n case('reddit'):\n moresharelistObs.unshift(cnnmsocial.reddit.addbutton);\n break;\n case('stumbleupon'):\n moresharelistObs.unshift(cnnmsocial.stumbleupon.addbutton);\n break;\n default:\n break;\n }\n }\n catch(e) {\n console.log('share [addtoutshares]: ' + e.message);\n }\n }\n\n metadata.morelist = moresharelistObs;\n\n for (var n = 0; n < mainsharelist.length; n++) {\n /* add button */\n try{\n switch(mainsharelist[n]) {\n case('fb'):\n cnnmsocial.facebook.addbutton($elem, metadata);\n break;\n case('email'):\n cnnmsocial.email.addbutton($elem, metadata);\n break;\n case('tw'):\n cnnmsocial.twitter.addbutton($elem, metadata);\n break;\n case('linkedin'):\n cnnmsocial.linkedin.addbutton($elem, metadata);\n break;\n case('pinterest'):\n cnnmsocial.pinterest.addbutton($elem, metadata);\n break;\n case('gplus'):\n cnnmsocial.gplus.addbutton($elem, metadata);\n break;\n case('reddit'):\n cnnmsocial.reddit.addbutton($elem, metadata);\n break;\n case('stumbleupon'):\n cnnmsocial.stumbleupon.addbutton($elem, metadata);\n break;\n case('more'):\n cnnmsocial.morebutton.addbutton($elem, metadata);\n break;\n default:\n break;\n }\n }\n catch(e) {\n console.log('share [addtoutshares]: ' + e.message);\n }\n }\n });\n },\n\n loadscripts: function () {\n if (!cnnmsocial.facebook.killswitch) {\n cnnmsocial.facebook.loadscript();\n }\n if (!cnnmsocial.twitter.killswitch) {\n cnnmsocial.twitter.loadscript();\n }\n if (!cnnmsocial.linkedin.killswitch) {\n console.log(\"loading\");\n cnnmsocial.linkedin.loadscript();\n }\n if (!cnnmsocial.email.killswitch) {\n cnnmsocial.email.loadscript();\n }\n\n\n },\n\n refresh: function (socialbrand) {\n if (typeof socialbrand === 'undefined') {\n socialbrand = '';\n }\n switch (socialbrand) {\n case ('facebook'):\n cnnmsocial.facebook.refresh(this.sharebars.$main);\n cnnmsocial.facebook.refresh(this.sharebars.$float);\n break;\n case ('twitter'):\n cnnmsocial.twitter.refresh(this.sharebars.$main);\n cnnmsocial.twitter.refresh(this.sharebars.$float);\n break;\n case ('linkedin'):\n cnnmsocial.linkedin.refresh(this.sharebars.$main);\n cnnmsocial.linkedin.refresh(this.sharebars.$float);\n break;\n case ('gplus'):\n cnnmsocial.gplus.refresh(this.sharebars.$main);\n cnnmsocial.gplus.refresh(this.sharebars.$float);\n break;\n case ('pinterest'):\n cnnmsocial.pinterest.refresh(this.sharebars.$main);\n cnnmsocial.pinterest.refresh(this.sharebars.$float);\n break;\n case ('reddit'):\n cnnmsocial.reddit.refresh(this.sharebars.$main);\n cnnmsocial.reddit.refresh(this.sharebars.$float);\n break;\n case ('stumbleupon'):\n cnnmsocial.stumbleupon.refresh(this.sharebars.$main);\n cnnmsocial.stumbleupon.refresh(this.sharebars.$float);\n break;\n case ('email'):\n cnnmsocial.email.refresh(this.sharebars.$main);\n cnnmsocial.email.refresh(this.sharebars.$float);\n break;\n case ('print'):\n cnnmsocial.print.refresh(this.sharebars.$main);\n cnnmsocial.print.refresh(this.sharebars.$float);\n break;\n case ('embed'):\n cnnmsocial.embed.refresh(this.sharebars.$main);\n cnnmsocial.embed.refresh(this.sharebars.$float);\n break;\n default:\n // update all\n cnnmsocial.facebook.refresh(this.sharebars.$main);\n cnnmsocial.facebook.refresh(this.sharebars.$float);\n cnnmsocial.twitter.refresh(this.sharebars.$main);\n cnnmsocial.twitter.refresh(this.sharebars.$float);\n cnnmsocial.linkedin.refresh(this.sharebars.$main);\n cnnmsocial.linkedin.refresh(this.sharebars.$float);\n cnnmsocial.stumbleupon.refresh(this.sharebars.$main);\n cnnmsocial.stumbleupon.refresh(this.sharebars.$float);\n cnnmsocial.email.refresh(this.sharebars.$main);\n cnnmsocial.email.refresh(this.sharebars.$float);\n cnnmsocial.gplus.refresh(this.sharebars.$main);\n cnnmsocial.gplus.refresh(this.sharebars.$float);\n cnnmsocial.pinterest.refresh(this.sharebars.$main);\n cnnmsocial.pinterest.refresh(this.sharebars.$float);\n cnnmsocial.reddit.refresh(this.sharebars.$main);\n cnnmsocial.reddit.refresh(this.sharebars.$float);\n cnnmsocial.print.refresh(this.sharebars.$main);\n cnnmsocial.print.refresh(this.sharebars.$float);\n cnnmsocial.embed.refresh(this.sharebars.$main);\n cnnmsocial.embed.refresh(this.sharebars.$float);\n\n cnnmsocial.morebutton.refresh(this.sharebars.$main);\n cnnmsocial.morebutton.refresh(this.sharebars.$float);\n break;\n }\n },\n\n bitlyupdate: function (bitlyURL) {\n // update twitter btn\n cnnmsocial.twitter.bitlyURL = bitlyURL;\n this.refresh('twitter');\n },\n\n settrackURL: function (URL) {\n if (typeof (URL) !== 'undefined') {\n this.socialtrack_URL = URL;\n } else {\n this.socialtrack_URL = null;\n }\n },\n\n debugit: function (text) {\n display = '';\n\n if (typeof text !== 'undefined') {\n display = '

    ' + text + '


    ';\n }\n display += \"shareURL : \" + this.shareURL + \"
    \";\n display += \"sharePath : \" + this.sharePath + \"
    \";\n // display += \"multipageURL : \" + multipageURL + \"
    \";\n display += \"shareTitle : \" + this.shareTitle + \"
    \";\n display = \"
  • \" + display + \"
  • \";\n\n display += \"FB-url: \" + cnnmsocial.facebook.shareURL + \"
    \";\n display += \"FB-showct: \" + cnnmsocial.facebook.showcount + \"
    \";\n\n display += \"Twt-url: \" + cnnmsocial.twitter.shareURL + \"
    \";\n display += \"Twt-bitly: \" + cnnmsocial.twitter.bitlyURL + \"
    \";\n display += \"Twt-desc: \" + cnnmsocial.twitter.description + \"
    \";\n display += \"Twt-source: \" + cnnmsocial.twitter.source + \"
    \";\n display += \"Twt-related: \" + cnnmsocial.twitter.related + \"
    \";\n display += \"Twt-count: \" + cnnmsocial.twitter.count + \"
    \";\n\n display += \"LI-url: \" + cnnmsocial.linkedin.shareURL + \"
    \";\n display += \"LI-desc: \" + cnnmsocial.linkedin.description + \"
    \";\n display += \"LI-source: \" + cnnmsocial.linkedin.source + \"
    \";\n display += \"LI-showct: \" + cnnmsocial.linkedin.showcount + \"
    \";\n\n display += \"G+-url: \" + cnnmsocial.gplus.shareURL + \"
    \";\n display += \"G+-annot: \" + cnnmsocial.gplus.annotation + \"
    \";\n\n\n $testbox = jQuery('#cnnmsocialLog');\n if ($testbox.length > 0) {\n $testbox.html(display);\n } else {\n display = '
      ' + display + \"
    \";\n jQuery('body').append(display);\n }\n },\n\n\n init: function () {\n /* set page sharebar */\n this.setsharedata();\n this.setbuttonsets();\n this.setoverrides();\n this.addsharebar_main();\n this.addsharebar_float();\n\n if (location.hostname.indexOf(\"moneypreview\") == -1) {\n cnnmsocial.bitly.getbitlyURL();\n }\n\n this.addsocialbuttons();\n\n /* check for summary/tout sharebars */\n this.addtoutshares();\n\n this.loadscripts();\n }\n};\n\n\nfunction cnnUpdateShareWidget(data) {\n var videoId = data.video_id;\n var videouri = 'http://money.cnn.com/' + videoId + '/index.html';\n var videotitle = (data.title === null) ? document.title : data.title;\n var videoimage = (data.image === null) ? document.image : data.image;\n\n var videoshareinfo = {\n global: {\n url: videouri,\n title: videotitle,\n image : videoimage\n }\n };\n CNNM.Social.setoverrides(videoshareinfo);\n if (CNNM.Social.enableRefresh){\n CNNM.Social.refresh();\n }\n CNNM.Social.enableRefresh = true;\n}","var cnnBVPAdSections = {\r\n \"news\": \"cnnmoney.com_businessnews_archive\",\r\n \"business\": \"cnnmoney.com_businessnews_archive\",\r\n \"business2\": \"cnnmoney.com_businessnews_archive\",\r\n \"markets\": \"cnnmoney.com_marketsandstocks_archive\",\r\n \"media \": \"cnnmoney.com_media_archive\",\r\n \"luxury\": \"cnnmoney.com_luxury_archive\",\r\n \"pf\": \"cnnmoney.com_personalfinance_archive\",\r\n \"moneymag\": \"cnnmoney.com_personalfinance_archive\",\r\n \"fsb\": \"cnnmoney.com_smallbusiness_archive\",\r\n \"smallbusiness\": \"cnnmoney.com_smallbusiness_archive\",\r\n \"technology\": \"cnnmoney.com_technology_archive\",\r\n \"fortune_news\": \"fortune.com_businessnews_archive\",\r\n \"fortune_business\": \"fortune.com_businessnews_archive\",\r\n \"fortune_markets\": \"fortune.com_marketsandstocks_archive\",\r\n \"fortune_pf\": \"fortune.com_personalfinance_archive\",\r\n \"fortune_smallbusiness\": \"fortune.com_smallbusiness_archive\",\r\n \"fortune_technology\": \"fortune.com_technology_archive\",\r\n \"fortune_fortune\": \"fortune.com_technology_archive\",\r\n \"btw\": \"cnnmoney.com_businessnews_btw_archive\",\r\n \"b.t.w.\": \"cnnmoney.com_businessnews_btw_archive\",\r\n \"cnnmoneyreports\": \"cnnmoney.com_businessnews_cnnmoneyreports_archive\",\r\n \"facetoface\": \"cnnmoney.com_business_news_face_to_face_archive\",\r\n \"strategysessions\": \"cnnmoney.com_businessnews_strategysessions_archive\",\r\n \"morningbuzz\": \"cnnmoney.com_investing_thebuzz_archive\",\r\n \"corneroffice\": \"cnnmoney.com_businessnews_clevel_corneroffice_archive\",\r\n \"detroit\": \"cnnmoney.com_businessnews_jobsandeconomy_detroitproject_archive\",\r\n \"midtermelections2010\": \"cnnmoney.com_businessnews_jobsandeconomy_election_archive\",\r\n \"gas\": \"cnnmoney.com_businessnews_jobsandeconomy_energy_archive\",\r\n \"cnnmoneynow\": \"cnnmoney.com_marketsandstocks_cnnmoneynow_archive\",\r\n \"moneytips\": \"cnnmoney.com_personalfinance_moneytips_archive\",\r\n \"asktheexpert\": \"cnnmoney.com_retirement_asktheexpert_archive\",\r\n \"revell\": \"cnnmoney.com_retirement_rulesofretirement_archive\",\r\n \"innovationnation\": \"cnnmoney.com_technology_innovationnation_archive\",\r\n \"smallglobal\": \"cnnmoney.com_smallbusiness_smallandglobal_archive\",\r\n \"smallbiztips\": \"cnnmoney.com_smallbusiness_smallbiztips_archive\",\r\n \"fsbmakeover\": \"cnnmoney.com_smallbusiness_smallbusinessmakeover_archive\",\r\n \"resourceguide\": \"cnnmoney.com_smallbusiness_smallbiztips_archive\",\r\n \"stateofsmallbiz\": \"cnnmoney.com_small_business_state_of_small_business_archive\",\r\n \"where-are-they-now\": \"cnnmoney.com_small_business_where_are_they_now_archive\",\r\n \"techtalk\": \"cnnmoney.com_technology_techtalk_archive\",\r\n \"toptips\": \"cnnmoney.com_personalfinance_fivetips_archive\",\r\n \"consciouscapitalism\": \"cnnmoney.com_businessnews_clevel_consciouscapitalism_archive\",\r\n \"visionaries\": \"cnnmoney.com_businessnews_visionaries_archive\",\r\n \"bestadvice\": \"fortune.com_businessnews_bestadvice_archive\",\r\n \"bestplacelive_2013\": \"cnnmoney.com_personalfinance_bestplacestolive_archive\",\r\n \"bestplacelive_2012\": \"cnnmoney.com_personalfinance_bestplacestolive_archive\",\r\n \"bestplacelive_2010\": \"cnnmoney.com_personalfinance_bestplacestolive_archive\",\r\n \"bestplacelive_2009\": \"cnnmoney.com_personalfinance_bestplacestolive_archive\",\r\n \"bestplacelive_2008\": \"cnnmoney.com_personalfinance_bestplacestolive_archive\",\r\n \"bestplacelive_2007\": \"cnnmoney.com_personalfinance_bestplacestolive_archive\",\r\n \"buffett_live\": \"cnnmoney.com_investing_buffett_live_archive\",\r\n \"thebuzz\": \"cnnmoney.com_investing_thebuzz_archive\",\r\n \"holidaymoney2009\": \"cnnmoney.com_personalfinance_holidaymoney_archive\",\r\n \"holidaymoney2010\": \"cnnmoney.com_personalfinance_holidaymoney_archive\",\r\n \"road-to-wealth\": \"cnnmoney.com_personal_finance_road_to_wealth_archive\",\r\n \"bing\": \"fortune.com_businessnews_stanleybing_archive\",\r\n \"csuite\": \"fortune.com_clevel_csuitestrategies_archive\",\r\n \"csuiteunpackaged\": \"fortune.com_clevel_csuitestrategies_archive\",\r\n \"40under40_2010\": \"fortune.com_clevel_peopleyoushouldknow_archive\",\r\n \"40under40_2011\": \"fortune.com_business_news_clevel_40_under_40_archive\",\r\n \"40under40_2012\": \"fortune.com_business_news_clevel_40_under_40_archive\",\r\n \"mostpowerfulwomen2013\": \"fortune.com_clevel_50mostpowerfulwomen_archive\",\r\n \"globalforum\": \"fortune.com_worldbiz_globalforum_archive\",\r\n \"global500_2013\": \"fortune.com_lists_global500_archive\",\r\n \"streetlife\": \"fortune.com_marketsandstocks_streetlife_archive\",\r\n \"investorsguide2010\": \"fortune.com_personalfinance_ultimateinvestmentguide_archive\",\r\n \"investorsguide2011\": \"fortune.com_personalfinance_ultimateinvestmentguide_archive\",\r\n \"money-sense\": \"fortune.com_personal_finance_money_sense_archive\",\r\n \"brainstormtech\": \"fortune.com_technology_brainstorm_archive\",\r\n \"disruptors\": \"fortune.com_technology_disruptors_archive\",\r\n \"techmate\": \"fortune.com_technology_techmate_archive\",\r\n \"techtransformation\": \"fortune.com_technology_techtransformation_archive\",\r\n \"bestcos2012\": \"fortune.com_lists_100bestcompaniestoworkfor_archive\",\r\n \"powerwomen2012\": \"fortune.com_clevel_50mostpowerfulwomen_archive\",\r\n \"bestcos2011\": \"fortune.com_lists_100bestcompaniestoworkfor_archive\",\r\n \"mostadmired2013\": \"fortune.com_lists_mostadmiredcompanies_archive\",\r\n \"mostadmired2014\": \"fortune.com_lists_mostadmiredcompanies_archive\",\r\n \"davos\": \"cnnmoney.com_worldbiz_davos_archive\",\r\n \"executivedreamteam\": \"fortune.com_clevel_executivedreamteam_archive\",\r\n \"appnation\": \"cnnmoney.com_technology_app_nation_archive\",\r\n \"gamechangers\": \"cnnmoney.com_businessnews_game_changers_archive\",\r\n \"fastestgrowingcos2012\": \"fortune.com_lists_fastestgrowingcompanies_archive\",\r\n \"fastestgrowingcos2013\": \"fortune.com_lists_fastestgrowingcompanies_archive\",\r\n \"wheels\": \"cnnmoney.com_personalfinance_auto_wheels_archive\",\r\n \"verne_harnish\": \"cnnmoney.com_small_business_verne_harnish_archive\",\r\n \"sept11_2011\": \"fortune.com_personalfinance_ground_zero_archive\",\r\n \"trailblazers\": \"cnnmoney.com_small_business_innovation_trailblazers_archive\",\r\n \"away\": \"cnnmoney.com_luxury_away_archive\",\r\n \"drive\": \"cnnmoney.com_luxury_drive_archive\",\r\n \"million-dollar-homes\": \"cnnmoney.com_luxury_milliondollarhomes_archive\",\r\n \"the-big-spend\": \"cnnmoney.com_luxury_thebigspend_archive\",\r\n \"reliablesources\": \"cnnmoney.com_media_reliablesources_archive\",\r\n \"money-moves\": \"cnnmoney.com_personalfinance_moneymoves_archive\",\r\n \"your-money\": \"cnnmoney.com_personalfinance_yourmoney_archive\",\r\n \"future-of-love\": \"cnnmoney.com_technology_futureoflove_archive\",\r\n \"ces\": \"cnnmoney.com_technology_ces_archive\",\r\n \"big-money\": \"cnnmoney.com_luxury_bigmoney_archive\",\r\n \"new-rules-for-retirement\": \"cnnmoney.com_personalfinance_newrulesforretirement_archive\",\r\n \"24-hours-with\": \"cnnmoney.com_personalfinance_24hourswith_archive\",\r\n \"billion-dollar-ideas\": \"cnnmoney.com_technology_billiondollarideas_archive\",\r\n \"family-money\": \"cnnmoney.com_luxury_familymoney_archive\",\r\n \"why-costs\": \"cnnmoney.com_luxury_whycosts_archive\",\r\n \"opening-bell\": \"cnnmoney.com_investing_openingbell_archive\",\r\n \"aloft\": \"cnnmoney.com_luxury_aloft_archive\",\r\n \"hottest-investments-world\": \"cnnmoney.com_investing_hottestinvestmentsworld_archive\",\r\n \"the-real-economy\": \"cnnmoney.com_businessnews_jobsandeconomy_therealeconomy_archive\",\r\n \"cloud-computing\": \"cnnmoney.com_technology_cloudcomputing_archive\",\r\n \"business-ofbeing\": \"cnnmoney.com_businessnews_businessofbeing_archive\",\r\n \"most-innovative-cities\": \"cnnmoney.com_technology_mostinnovativecities_archive\",\r\n \"holiday-shopping\": \"cnnmoney.com_personalfinance_holidayshopping_archive\",\r\n \"planning-next\": \"cnnmoney.com_personalfinance_planningnext_archive\",\r\n \"dream-retirement\": \"cnnmoney.com_personalfinance_dreamretirement_archive\",\r\n \"science-of-work\": \"cnnmoney.com_smallbusiness_scienceofwork_archive\",\r\n \"voyage\": \"cnnmoney.com_luxury_voyage_archive\",\r\n \"smart-spending\": \"cnnmoney.com_personalfinance_smartspending_archive\"\r\n};\r\nvar cnnStoryAdSections = {\r\n \"markets\": \"cnnmoney.com_marketsandstocks_t1\",\r\n \"news/economy\": \"cnnmoney.com_businessnews_jobsandeconomy_t1\",\r\n \"news\": \"cnnmoney.com_businessnews_t1\",\r\n \"pf\": \"cnnmoney.com_personalfinance_t1\",\r\n \"real_estate\": \"cnnmoney.com_realestate_t1\",\r\n \"retirement\": \"cnnmoney.com_retirement_t1\",\r\n \"smallbusiness\": \"cnnmoney.com_smallbusiness_t1\",\r\n \"technology\": \"cnnmoney.com_technology_t1\",\r\n \"fortune_news\": \"fortune.com_businessnews_t1\",\r\n \"fortune_pf\": \"fortune.com_personalfinance_t1\",\r\n \"fortune_smallbusiness\": \"fortune.com_smallbusiness_t1\",\r\n \"fortune_technology\": \"fortune.com_technology_t1\",\r\n \"fortune_lifestyle\": \"fortune.com_lifestyle_t1\",\r\n \"blog_features\": \"fortune.com_businessnews_t1\",\r\n \"blog_postcards\": \"fortune.com_businessnews_t1\",\r\n \"blog_tech\": \"fortune.com_technology_t1\",\r\n \"blog_finance\": \"cnnmoney.com_investing_t1\",\r\n \"blog_management\": \"fortune.com_businessnews_t1\",\r\n \"blog_moremoney\": \"cnnmoney.com_personalfinance_t1\",\r\n \"blog_readereschoice\": \"cnnmoney.com_personalfinance_t1\",\r\n \"blog_helpdesk\": \"cnnmoney.com_personalfinance_fivetips_t1\",\r\n \"blog_economy\": \"cnnmoney.com_businessnews_jobsandeconomy_t1\",\r\n \"blog_buzz\": \"cnnmoney.com_investing_thebuzz_t1\",\r\n \"blog_smallbusiness\": \"cnnmoney.com_smallbusiness_t1\",\r\n \"bestbizideas\": \"cnnmoney.com_businessnews_bestbusinessideas_t1\",\r\n \"greenbiz\": \"cnnmoney.com_businessnews_bizgreen_t1\",\r\n \"facetoface\": \"cnnmoney.com_business_news_face_to_face_t1\",\r\n \"strategysessions\": \"cnnmoney.com_businessnews_strategysessions_t1\",\r\n \"morningbuzz\": \"cnnmoney.com_investing_thebuzz_t1\",\r\n \"bestjobs2009\": \"cnnmoney.com_businessnews_jobsandeconomy_bestjobs_t1\",\r\n \"bestjobs\": \"cnnmoney.com_businessnews_jobsandeconomy_bestjobs_t1\",\r\n \"detroit\": \"cnnmoney.com_businessnews_jobsandeconomy_detroitproject_t1\",\r\n \"TheRescue\": \"cnnmoney.com_businessnews_jobsandeconomy_election_t1\",\r\n \"midtermelections2010\": \"cnnmoney.com_businessnews_jobsandeconomy_election_t1\",\r\n \"gas\": \"cnnmoney.com_businessnews_jobsandeconomy_energy_t1\",\r\n \"fortuneoutlook\": \"cnnmoney.com_businessnews_jobsandeconomy_theoutlook_t1\",\r\n \"luxurylifetop\": \"cnnmoney.com_luxury_t1\",\r\n \"bestplacelive_2013\": \"cnnmoney.com_personalfinance_bestplacestolive_t1\",\r\n \"bestplacelive_2012\": \"cnnmoney.com_personalfinance_bestplacestolive_t1\",\r\n \"bestplacelive_2010\": \"cnnmoney.com_personalfinance_bestplacestolive_t1\",\r\n \"bestplacelive_2009\": \"cnnmoney.com_personalfinance_bestplacestolive_t1\",\r\n \"bestplacelive_2008\": \"cnnmoney.com_personalfinance_bestplacestolive_t1\",\r\n \"bestplacelive_2007\": \"cnnmoney.com_personalfinance_bestplacestolive_t1\",\r\n \"buffett_live\": \"cnnmoney.com_investing_buffett_live_t1\",\r\n \"doitnow\": \"cnnmoney.com_personalfinance_doitnow_t1\",\r\n \"holiday\": \"cnnmoney.com_personalfinance_holidaymoney_t1\",\r\n \"holidaymoney2009\": \"cnnmoney.com_personalfinance_holidaymoney_t1\",\r\n \"holidaymoney2010\": \"cnnmoney.com_personalfinance_holidaymoney_t1\",\r\n \"holiday2007\": \"cnnmoney.com_personalfinance_holidaymoney_t1\",\r\n \"moneymainstreet\": \"cnnmoney.com_personalfinance_moneyandmainstreet_t1\",\r\n \"familymoney\": \"cnnmoney.com_personalfinance_yourfamily_t1\",\r\n \"yourfamilymoney\": \"cnnmoney.com_personalfinance_yourfamily_t1\",\r\n \"road-to-wealth\": \"cnnmoney.com_personal_finance_road_to_wealth_t1\",\r\n \"familymoney\": \"cnnmoney.com_realestate_yourfamily_t1\",\r\n \"yourfamilymoney\": \"cnnmoney.com_realestate_yourfamily_t1\",\r\n \"MONEY\": \"cnnmoney.com_retirement_asktheexpert_t1\",\r\n \"bestplaceretire_2010\": \"cnnmoney.com_retirement_bestplacestoretire_t1\",\r\n \"bestplaceretire_2009\": \"cnnmoney.com_retirement_bestplacestoretire_t1\",\r\n \"bestplaceretire_2008\": \"cnnmoney.com_retirement_bestplacestoretire_t1\",\r\n \"bestplaceretire_2007\": \"cnnmoney.com_retirement_bestplacestoretire_t1\",\r\n \"bestplaceretire\": \"cnnmoney.com_retirement_bestplacestoretire_t1\",\r\n \"retirerich\": \"cnnmoney.com_retirement_retirerich_t1\",\r\n \"revell\": \"cnnmoney.com_retirement_rulesofretirement_t1\",\r\n \"bestbizideas\": \"cnnmoney.com_smallbusiness_bestbusinessideas_t1\",\r\n \"innovationnation\": \"cnnmoney.com_technology_innovationnation_t1\",\r\n \"smallandglobal\": \"cnnmoney.com_smallbusiness_smallandglobal_t1\",\r\n \"fsbmakeover\": \"cnnmoney.com_smallbusiness_smallbusinessmakeover_t1\",\r\n \"stateofsmallbiz\": \"cnnmoney.com_small_business_state_of_small_business_t1\",\r\n \"fortunetechtalk\": \"cnnmoney.com_technology_techtalk_t1\",\r\n \"toptips\": \"cnnmoney.com_personalfinance_fivetips_t1\",\r\n \"visionaries\": \"cnnmoney.com_businessnews_visionaries_t1\",\r\n \"where-are-they-now\": \"cnnmoney.com_small_business_where_are_they_now_t1\",\r\n \"bestadvice2009\": \"fortune.com_businessnews_bestadvice_t1\",\r\n \"brainstormgreen\": \"fortune.com_businessnews_brainstormgreenconference_t1\",\r\n \"dumbest\": \"fortune.com_lists_dumbmoments_t1\",\r\n \"stanleybing\": \"fortune.com_businessnews_stanleybing_t1\",\r\n \"mostpowerfulwomen2013\": \"fortune.com_clevel_50mostpowerfulwomen_t1\",\r\n \"powerwomen2012\": \"fortune.com_clevel_50mostpowerfulwomen_t1\",\r\n \"powerwomen2010\": \"fortune.com_clevel_50mostpowerfulwomen_t1\",\r\n \"powerwomen2009\": \"fortune.com_clevel_50mostpowerfulwomen_t1\",\r\n \"powerwomen2008\": \"fortune.com_clevel_50mostpowerfulwomen_t1\",\r\n \"powerwomen2007\": \"fortune.com_clevel_50mostpowerfulwomen_t1\",\r\n \"powerwomen\": \"fortune.com_clevel_50mostpowerfulwomen_t1\",\r\n \"csuite\": \"fortune.com_clevel_csuitestrategies_t1\",\r\n \"csuiteunpackaged\": \"fortune.com_clevel_csuitestrategies_t1\",\r\n \"leadership2008\": \"fortune.com_clevel_leadershipseries_t1\",\r\n \"40under40_2010\": \"fortune.com_clevel_peopleyoushouldknow_t1\",\r\n \"40under40_2011\": \"fortune.com_business_news_clevel_40_under_40_t1\",\r\n \"40under40_2012\": \"fortune.com_business_news_clevel_40_under_40_t1\",\r\n \"fortpower25\": \"fortune.com_clevel_powerissue_t1\",\r\n \"peopleinpower\": \"fortune.com_clevel_powerissue_t1\",\r\n \"bestcos2012\": \"fortune.com_lists_100bestcompaniestoworkfor_t1\",\r\n \"bestcos2011\": \"fortune.com_lists_100bestcompaniestoworkfor_t1\",\r\n \"bestcos2010\": \"fortune.com_lists_100bestcompaniestoworkfor_t1\",\r\n \"bestcos2009\": \"fortune.com_lists_100bestcompaniestoworkfor_t1\",\r\n \"bestcos2008\": \"fortune.com_lists_100bestcompaniestoworkfor_t1\",\r\n \"bestcos\": \"fortune.com_lists_100bestcompaniestoworkfor_t1\",\r\n \"fastestgrowingcos2009\": \"fortune.com_lists_fastestgrowingcompanies_t1\",\r\n \"fastestgrowingcos2008\": \"fortune.com_lists_fastestgrowingcompanies_t1\",\r\n \"fortfastgrow_2007\": \"fortune.com_lists_fastestgrowingcompanies_t1\",\r\n \"fortune500_2013\": \"fortune.com_lists_fortune500_t1\",\r\n \"fortune500_2012\": \"fortune.com_lists_fortune500_t1\",\r\n \"fortune500_2011\": \"fortune.com_lists_fortune500_t1\",\r\n \"fortune500_2010\": \"fortune.com_lists_fortune500_t1\",\r\n \"fortune500_2009\": \"fortune.com_lists_fortune500_t1\",\r\n \"fortune500_2008\": \"fortune.com_lists_fortune500_t1\",\r\n \"fortune500_2007\": \"fortune.com_lists_fortune500_t1\",\r\n \"fortune500_2006\": \"fortune.com_lists_fortune500_t1\",\r\n \"global500_2013\": \"fortune.com_lists_global500_t1\",\r\n \"global500_2009\": \"fortune.com_lists_global500_t1\",\r\n \"global500_2008\": \"fortune.com_lists_global500_t1\",\r\n \"global500_2007\": \"fortune.com_lists_global500_t1\",\r\n \"globalforum\": \"fortune.com_worldbiz_globalforum_t1\",\r\n \"mostadmired2009\": \"fortune.com_lists_mostadmiredcompanies_t1\",\r\n \"mostadmired2008\": \"fortune.com_lists_mostadmiredcompanies_t1\",\r\n \"mostadmired2013\": \"fortune.com_lists_mostadmiredcompanies_t1\",\r\n \"mostadmired2014\": \"fortune.com_lists_mostadmiredcompanies_t1\",\r\n \"mostadmiredcos\": \"fortune.com_lists_mostadmiredcompanies_t1\",\r\n \"callawaycars\": \"fortune.com_lifestyle_autos_callawaycars_t1\",\r\n \"fortluxbiz2008\": \"fortune.com_lifestyle_bizofluxury_t1\",\r\n \"luxurylifetop\": \"fortune.com_lifestyle_lifeatthetop_t1\",\r\n \"roadwarriorsfortune\": \"fortune.com_lifestyle_travel_roadwarriorsguide_t1\",\r\n \"captainsblog\": \"fortune.com_marketsandstocks_streetlife_t1\",\r\n \"investorsp-econ08\": \"fortune.com_personalfinance_investorsspecialguide_t1\",\r\n \"investorsguide2010\": \"fortune.com_personalfinance_ultimateinvestmentguide_t1\",\r\n \"investorsguide2011\": \"fortune.com_personalfinance_ultimateinvestmentguide_t1\",\r\n \"money-sense\": \"fortune.com_personal_finance_money_sense_t1\",\r\n \"bpsmbiz2009\": \"fortune.com_smallbusiness_bestplacesforsmallbusiness_t1\",\r\n \"fsbhowwegotstarted\": \"fortune.com_smallbusiness_entrepreneurialheroes_t1\",\r\n \"brainstormTech2008\": \"fortune.com_technology_brainstorm_t1\",\r\n \"brainstormtech\": \"fortune.com_technology_brainstorm_t1\",\r\n \"disruptors\": \"fortune.com_technology_disruptors_t1\",\r\n \"techinnovation\": \"fortune.com_technology_innovationtechspecial_t1\",\r\n \"techinnovators2008\": \"fortune.com_technology_techspecialreport_t1\",\r\n \"biztransform\": \"fortune.com_technology_techtransformation_t1\",\r\n \"davos\": \"cnnmoney.com_worldbiz_davos_t1\",\r\n \"executivedreamteam\": \"fortune.com_clevel_executivedreamteam_t1\",\r\n \"appnation\": \"cnnmoney.com_technology_app_nation_t1\",\r\n \"gamechangers\": \"cnnmoney.com_businessnews_game_changers_t1\",\r\n \"fastestgrowingcos2012\": \"fortune.com_lists_fastestgrowingcompanies_t1\",\r\n \"fastestgrowingcos2013\": \"fortune.com_lists_fastestgrowingcompanies_t1\",\r\n \"wheels\": \"cnnmoney.com_personalfinance_auto_wheels_t1\",\r\n \"sept11_2011\": \"fortune.com_personalfinance_ground_zero_t1\",\r\n \"verne_harnish\": \"cnnmoney.com_small_business_verne_harnish_t1\",\r\n \"trailblazers\": \"cnnmoney.com_small_business_innovation_trailblazers_t1\",\r\n \"away\": \"cnnmoney.com_luxury_away_t1\",\r\n \"drive\": \"cnnmoney.com_luxury_drive_t1\",\r\n \"million-dollar-homes\": \"cnnmoney.com_luxury_milliondollarhomes_t1\",\r\n \"the-big-spend\": \"cnnmoney.com_luxury_thebigspend_t1\",\r\n \"reliablesources\": \"cnnmoney.com_media_reliablesources_t1\",\r\n \"money-moves\": \"cnnmoney.com_personalfinance_moneymoves_t1\",\r\n \"your-money\": \"cnnmoney.com_personalfinance_yourmoney_t1\",\r\n \"future-of-love\": \"cnnmoney.com_technology_futureoflove_t1\",\r\n \"ces\": \"cnnmoney.com_technology_ces_t1\",\r\n \"big-money\": \"cnnmoney.com_luxury_bigmoney_t1\",\r\n \"new-rules-for-retirement\": \"cnnmoney.com_personalfinance_newrulesforretirement_t1\",\r\n \"24-hours-with\": \"cnnmoney.com_personalfinance_24hourswith_t1\",\r\n \"billion-dollar-ideas\": \"cnnmoney.com_technology_billiondollarideas_t1\",\r\n \"family-money\": \"cnnmoney.com_luxury_familymoney_t1\",\r\n \"why-costs\": \"cnnmoney.com_luxury_whycosts_t1\",\r\n \"opening-bell\": \"cnnmoney.com_investing_openingbell_t1\",\r\n \"aloft\": \"cnnmoney.com_luxury_aloft_t1\",\r\n \"hottest-investments-world\": \"cnnmoney.com_investing_hottestinvestmentsworld_t1\",\r\n \"the-real-economy\": \"cnnmoney.com_businessnews_jobsandeconomy_therealeconomy_t1\",\r\n \"cloud-computing\": \"cnnmoney.com_technology_cloudcomputing_t1\",\r\n \"business-ofbeing\": \"cnnmoney.com_businessnews_businessofbeing_t1\",\r\n \"most-innovative-cities\": \"cnnmoney.com_technology_mostinnovativecities_t1\",\r\n \"holiday-shopping\": \"cnnmoney.com_personalfinance_holidayshopping_t1\",\r\n \"planning-next\": \"cnnmoney.com_personalfinance_planningnext_t1\",\r\n \"dream-retirement\": \"cnnmoney.com_personalfinance_dreamretirement_t1\",\r\n \"science-of-work\": \"cnnmoney.com_smallbusiness_scienceofwork_t1\",\r\n \"voyage\": \"cnnmoney.com_luxury_voyage_t1\",\r\n \"smart-spending\": \"cnnmoney.com_personalfinance_smartspending_t1\"\r\n};\r\n\r\nfunction setADBPValues(player, o, video_id) {\r\n player.contentpage.cnnOmniture_source = player.contentpage.cnnOmniture_prop14 = \"\";\r\n player.contentpage.cnnOmniture_prop17 = \"\";\r\n player.contentpage.cnnOmniture_prop19 = \"\";\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"\";\r\n if (o.source == \"CNNMoney\") {\r\n player.contentpage.cnnOmniture_source = player.contentpage.cnnOmniture_prop14 = \"CNNMONEY\";\r\n } else {\r\n if (o.source == \"Fortune\") {\r\n player.contentpage.cnnOmniture_source = player.contentpage.cnnOmniture_prop14 = \"FORT\";\r\n }\r\n }\r\n switch (o.section) {\r\n case \"/video/news\":\r\n player.contentpage.cnnOmniture_prop19 = \"News\";\r\n break;\r\n case \"/video/markets\":\r\n player.contentpage.cnnOmniture_prop19 = \"Markets\";\r\n break;\r\n case \"/video/pf\":\r\n player.contentpage.cnnOmniture_prop19 = \"PersonalFinance\";\r\n break;\r\n case \"/video/technology\":\r\n player.contentpage.cnnOmniture_prop19 = \"Technology\";\r\n break;\r\n case \"/video/luxury\":\r\n player.contentpage.cnnOmniture_prop19 = \"Luxury\";\r\n break;\r\n default:\r\n break;\r\n }\r\n var playerprofile = player.profile;\r\n if (playerprofile == \"videoInteractive\") {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"interactive player\";\r\n } else {\r\n if (location.pathname.match(\"/interactive/\")) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"interactive player\";\r\n } else {\r\n if (playerprofile == \"live\") {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"live player\";\r\n } else {\r\n if (playerprofile == \"videoclip\") {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"videoclip\";\r\n } else {\r\n if (playerprofile == \"story\" || playerprofile == \"wp_blogs\") {\r\n if (\"top\" == player.vidloc) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"story top\";\r\n } else {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"story player\";\r\n }\r\n } else {\r\n if (playerprofile == \"gallerySmall\" || playerprofile == \"galleryLarge\" || playerprofile == \"galleryExtraLarge\") {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"gallery player\";\r\n } else {\r\n if (location.pathname == \"/\" || location.pathname == \"/index.html\") {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"cnnmoney homepage\";\r\n } else {\r\n if (location.pathname == \"/smallbusiness/\" || location.pathname.match(\"/smallbusiness/index.html\")) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"smallbusiness homepage\";\r\n } else {\r\n if (location.pathname == \"/smallbusiness/makeover/\" || location.pathname.match(\"/smallbusiness/makeover/index.html\")) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"smallbusiness makeover\";\r\n } else {\r\n if (location.pathname == \"/magazines/fortune/\" || location.pathname.match(\"/magazines/fortune/index.html\")) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"fortune homepage\";\r\n } else {\r\n if (top.location.pathname.match(\"data/premarket\")) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"premarkets\";\r\n } else {\r\n if (top.location.pathname.match(\"data/afterhours\")) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"afterhours\";\r\n } else {\r\n if (location.pathname.match(\"/video/\")) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"videoclip\";\r\n } else {\r\n if (location.pathname.match(\"news/specials/assignment_detroit\")) {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"detroit homepage\";\r\n } else {\r\n player.contentpage.cnnOmniture_playername = player.contentpage.cnnOmniture_prop24 = \"story player\";\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction playVideo(videoId, playerId) {\r\n var videoPlayer = (playerId === undefined) ? VideoPlayerManager.getPlayer() : VideoPlayerManager.getPlayer(playerId);\r\n if (videoPlayer == null) {\r\n VideoPlayerManager.playVideos();\r\n return;\r\n }\r\n var itemNum = videoPlayer.play_list.getIndex(videoId);\r\n if (!itemNum) {\r\n videoPlayer.play_list.injectItem({\r\n id: videoId\r\n });\r\n }\r\n videoPlayer.play(videoId);\r\n}\r\nvar VideoPlayerManager = {\r\n ispreview: (location.hostname.match(\"preview\")) ? true : false,\r\n players: {},\r\n playerprofiles: {\r\n configs: {\r\n \"generic\": {\r\n width: 1024,\r\n height: 576,\r\n divid: \"playerarea\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"story\": {\r\n width: 620,\r\n height: 348,\r\n divid: \"vid0\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"wp_blogs\": {\r\n width: 476,\r\n height: 268,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"player\",\r\n autoplay: false\r\n },\r\n \"section\": {\r\n width: 620,\r\n height: 348,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"sectionLarge\": {\r\n width: 1024,\r\n height: 576,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"videoclip\": {\r\n width: 1024,\r\n height: 576,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: true\r\n },\r\n \"galleryLarge\": {\r\n width: 620,\r\n height: 348,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"gallerySmall\": {\r\n width: 340,\r\n height: 191,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"galleryExtraLarge\": {\r\n width: 1024,\r\n height: 576,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"homepage\": {\r\n width: 620,\r\n height: 348,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"markets\": {\r\n width: 300,\r\n height: 168,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"interactive\": {\r\n width: 925,\r\n height: 520,\r\n divid: \"playerarea\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"videoInteractive\": {\r\n width: 1024,\r\n height: 576,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: false\r\n },\r\n \"live\": {\r\n width: 925,\r\n height: 520,\r\n divid: \"playerarea\",\r\n slateClick: \"player\",\r\n autoplay: true\r\n },\r\n \"twitter\": {\r\n width: 420,\r\n height: 236,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"player\",\r\n autoplay: false\r\n },\r\n \"noAds\": {\r\n width: 1024,\r\n height: 576,\r\n divid: \"cnnVidplayer\",\r\n slateClick: \"top\",\r\n autoplay: true\r\n }\r\n }\r\n },\r\n add: function(videoPlayer) {\r\n this.players[videoPlayer.id] = videoPlayer;\r\n },\r\n pauseplayers: function(pid) {\r\n for (var p in this.players) {\r\n if (pid != this.players[p].id && this.players[p].isPlaying) {\r\n this.players[p].pause();\r\n }\r\n }\r\n },\r\n getPlayer: function(id) {\r\n if (typeof(id) == \"undefined\") {\r\n for (var p in this.players) {\r\n return this.players[p];\r\n }\r\n }\r\n return this.players[id];\r\n },\r\n initVideo: function(playerconfig) {\r\n profile = (typeof playerconfig.playerprofile !== \"undefined\") ? playerconfig.playerprofile : \"generic\";\r\n var context = (VideoPlayerManager.ispreview) ? \"preview\" : profile,\r\n width = (typeof playerconfig.width !== \"undefined\") ? playerconfig.width : this.playerprofiles.configs[profile].width,\r\n height = (typeof playerconfig.height !== \"undefined\") ? playerconfig.height : this.playerprofiles.configs[profile].height,\r\n playerid = (typeof playerconfig.playerid !== \"undefined\") ? playerconfig.playerid : \"cvp_x\" + (parseInt(Math.random() * 10000)).toString(),\r\n divid = (typeof playerconfig.divid !== \"undefined\") ? playerconfig.divid : this.playerprofiles.configs[profile].divid,\r\n flashVarsProfile = (typeof playerconfig.flashVarsProfile !== \"undefined\") ? playerconfig.flashVarsProfile : \"2\",\r\n freewheelJsUrl = (typeof playerconfig.freewheelJsUrl !== \"undefined\") ? playerconfig.freewheelJsUrl : \"\",\r\n ssid = (typeof playerconfig.ssid !== \"undefined\") ? playerconfig.ssid : undefined,\r\n autostart = (playerconfig.profile == \"twitter\") ? \"off\" : \"on\",\r\n autoplay = (typeof playerconfig.autoplay !== \"undefined\") ? (playerconfig.autoplay) : this.playerprofiles.configs[profile].autoplay,\r\n has_poster = (typeof playerconfig.has_poster !== \"undefined\") ? (playerconfig.has_poster) : true,\r\n defaultSection = (typeof playerconfig.defaultSection !== \"undefined\") ? playerconfig.defaultSection : null,\r\n playlist = playerconfig.videoArray || playerconfig.playlist,\r\n auto_playlist = (typeof playerconfig.auto_playlist != \"undefined\") ? playerconfig.auto_playlist : true,\r\n maxVideos = (typeof playerconfig.maxVideos !== \"undefined\") ? playerconfig.maxVideos : 10,\r\n vidloc = (typeof playerconfig.loc != \"undefined\") ? playerconfig.loc : \"\",\r\n contentpage = (typeof playerconfig.contentpage != \"undefined\") ? playerconfig.contentpage : undefined,\r\n disableEndSlate = (typeof playerconfig.disableEndSlate != \"undefined\") ? playerconfig.disableEndSlate : undefined,\r\n disableNextUpSlate = (typeof playerconfig.disableNextUpSlate != \"undefined\") ? playerconfig.disableNextUpSlate : undefined,\r\n mode = (typeof playerconfig.mode != \"undefined\") ? playerconfig.mode : undefined,\r\n firstVideoId = (typeof playerconfig.firstVideoId != \"undefined\") ? playerconfig.firstVideoId : undefined,\r\n callouts = (typeof playerconfig.callouts != \"undefined\") ? playerconfig.callouts : undefined;\r\n var _cvpPlayerConfig = {\r\n id: playerid,\r\n width: width,\r\n height: height,\r\n divId: divid,\r\n flashVarsProfile: flashVarsProfile,\r\n freewheelJsUrl: freewheelJsUrl,\r\n defaultSection: defaultSection,\r\n callouts: callouts,\r\n mode: mode,\r\n firstVideoId: firstVideoId,\r\n maxVideos: maxVideos,\r\n playlist: playlist,\r\n auto_playlist: auto_playlist,\r\n contentpage: contentpage,\r\n disableEndSlate: disableEndSlate,\r\n disableNextUpSlate: disableNextUpSlate,\r\n vidloc: vidloc,\r\n vidprofile: profile,\r\n ssid: ssid,\r\n autoplay: autoplay,\r\n autostart: autostart,\r\n has_poster: has_poster\r\n };\r\n var _cvpPlayerCallbacks = (typeof playerconfig.callbacks !== \"undefined\") ? playerconfig.callbacks : {};\r\n var player = new VideoPlayer(_cvpPlayerConfig, _cvpPlayerCallbacks);\r\n if (!player.canPlay) {\r\n player.embedNeedsFlash();\r\n return;\r\n }\r\n this.add(player);\r\n player.init();\r\n },\r\n playVideos: function(playerid) {\r\n var numPlayers = vidConfig.length,\r\n playerconfig;\r\n for (var i = 0; i < numPlayers; i++) {\r\n playerconfig = vidConfig[i];\r\n if (typeof(playerid) != \"undefined\") {\r\n if (typeof(playerconfig.playerid) != \"undefined\" && playerid == playerconfig.playerid) {\r\n this.initVideo(playerconfig);\r\n return;\r\n }\r\n } else {\r\n this.initVideo(playerconfig);\r\n }\r\n }\r\n },\r\n loadAutoplayers: function() {\r\n var numPlayers = vidConfig.length,\r\n playerconfig, autoplayflag = false;\r\n for (var i = 0; i < numPlayers; i++) {\r\n playerconfig = vidConfig[i];\r\n profile = (typeof playerconfig.playerprofile !== \"undefined\") ? playerconfig.playerprofile : \"generic\";\r\n autoplayflag = (typeof playerconfig.autoplay !== \"undefined\") ? (playerconfig.autoplay) : this.playerprofiles.configs[profile].autoplay;\r\n if (autoplayflag) {\r\n this.initVideo(playerconfig);\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction VideoPlayer(config, callbacks) {\r\n var _self = this;\r\n var _player = null;\r\n this.profile = config.vidprofile || config.playerprofile || \"generic\";\r\n this.id = config.id || \"cvp_x\" + (parseInt(Math.random() * 10000)).toString();\r\n this.playerWidth = config.width || VideoPlayerManager.playerprofiles.configs[this.profile].width;\r\n this.playerHeight = config.height || VideoPlayerManager.playerprofiles.configs[this.profile].height;\r\n this.playerDivId = config.divId || VideoPlayerManager.playerprofiles.configs[this.profile].divid;\r\n this.flashVarsProfile = config.flashVarsProfile || \"2\";\r\n this.freewheelJsUrl = config.freewheelJsUrl || \"\";\r\n this.autoplay = config.autoplay || false;\r\n this.has_poster = (typeof config.has_poster !== undefined) ? config.has_poster : true;\r\n this.vidloc = config.vidloc || \"\";\r\n this.defaultSection = config.defaultSection || null;\r\n this.mode = config.mode || VideoPlaylist.MODES.NORMAL;\r\n this.firstVideoId = config.firstVideoId || null;\r\n this.maxVideos = config.limit || config.maxVideos || 10;\r\n this.temp_list = config.playlist || config.videoArray || [];\r\n this.auto_playlist = (config.auto_playlist !== undefined) ? config.auto_playlist : true;\r\n this.initial_callouts = config.callouts || {};\r\n this.contentpage = (typeof(config.contentpage) !== \"undefined\") ? eval(config.contentpage) : window;\r\n this.disableNextUpSlate = (config.disableNextUpSlate !== undefined) ? config.disableNextUpSlate : true;\r\n this.disableEndSlate = (config.disableEndSlate !== undefined) ? config.disableEndSlate : false;\r\n this.ssid = config.ssid || undefined;\r\n this.play_list = new VideoPlaylist(this.maxVideos, this.mode);\r\n this.slateClickTarget = config.slateClickTarget || VideoPlayerManager.playerprofiles.configs[this.profile].slateClick || \"top\";\r\n this.endSlate = null;\r\n this.pauseSlate = null;\r\n this.nextUpSlate = null;\r\n this.activeVideoObject = null;\r\n this.callbacks = callbacks || {};\r\n this.callouts = {\r\n onCVPReady: [],\r\n onContentBegin: [],\r\n onContentPause: [],\r\n onContentEnd: [],\r\n onContentPlayhead: []\r\n };\r\n this.hedClass = \"js-vid-hed-\" + this.id;\r\n this.dekClass = \"js-vid-dek-\" + this.id;\r\n this.countdownClass = \"js-vid-countdown-\" + this.id;\r\n this.bylineClass = \"js-vid-byline-\" + this.id;\r\n this.player_elem = null;\r\n this.hed_elem = null;\r\n this.dek_elem = null;\r\n this.byline_elem = null;\r\n this.countdown_elem = null;\r\n this.adStartTime = 0;\r\n this.trackingcontext = \"main\";\r\n this.videoStartTime = 0;\r\n this.canPlay = false;\r\n this.maximizeAndroid = false;\r\n this.isPlaying = false;\r\n this.isPaused = false;\r\n this.isAdPlaying = false;\r\n this.isHTML5 = false;\r\n this.playlistloaded = false;\r\n this.isReplay = false;\r\n this.autostart_tracking = false;\r\n var default_callbacks = {\r\n onPlayerReady: function(playerId) {\r\n _self.setHTML5flag();\r\n },\r\n onCVPReady: function() {\r\n try {\r\n _self.setplayerElems();\r\n } catch (e) {}\r\n var firstVideo = _self.play_list.getItem(_self.firstVideoId);\r\n if (firstVideo != null) {\r\n _self.play_list.setPointer(firstVideo.id);\r\n _self.play_list.prevItem();\r\n }\r\n try {\r\n _self.playNext();\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error trying to play first video fron onCVPReady\");\r\n }\r\n if (_self.callouts.onCVPReady.length > 0) {\r\n for (var i = 0; i < _self.callouts.onCVPReady.length; i++) {\r\n try {\r\n var _f = _self.callouts.onCVPReady[i];\r\n if (typeof(_f) === \"function\") {\r\n _f(_self.id);\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error running callout - \" + e);\r\n }\r\n }\r\n }\r\n },\r\n onAdPlay: function(playerId, token, mode, id, duration, blockId, adType) {\r\n try {\r\n var vdata = this.getContentEntry(this.getContentId());\r\n vdata = window.JSON.parse(vdata);\r\n vdata.cnnOmniture_prop14 = vdata.cnnOmniture_source = _self.contentpage.cnnOmniture_prop14;\r\n vdata.cnnOmniture_prop19 = _self.contentpage.cnnOmniture_prop19;\r\n vdata.cnnOmniture_prop24 = vdata.cnnOmniture_playername = _self.contentpage.cnnOmniture_prop24;\r\n _self.contentpage.sendVideoEvent(vdata, \"video-preroll\", playerId);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"error in onAdPlay - \" + e);\r\n }\r\n _self.adStartTime = new Date();\r\n _self.isAdPlaying = true;\r\n _self.adcountdown_start(duration);\r\n },\r\n onAdPlayhead: function(playerId, playhead, duration) {\r\n _self.adcountdown_update(duration - playhead);\r\n },\r\n onAdEnd: function(playerId, token, mode, id, blockId, adType) {\r\n _self.adStartTime = 0;\r\n _self.isAdPlaying = false;\r\n _self.adcountdown_remove();\r\n },\r\n onContentBegin: function(playerId, contentId) {\r\n _self.hideSlates();\r\n _self.videoStartTime = new Date();\r\n _self.isPlaying = true;\r\n try {\r\n _self.activeVideoObject = window.JSON.parse(this.getContentEntry(contentId));\r\n if (typeof(setADBPValues) === \"function\") {\r\n setADBPValues(_self, _self.activeVideoObject, contentId);\r\n }\r\n } catch (e) {\r\n console.warn(\"Error in onContentBegin, trying to get json data to set ADBP values\" + e.message);\r\n }\r\n try {\r\n VideoPlayerManager.pauseplayers(_self.id);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"pauseplayers\" + e.message);\r\n }\r\n try {\r\n _self.updateexternalitems(_self.activeVideoObject);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"update:\" + e.message);\r\n }\r\n try {\r\n if ((0 < _self.play_list.pointer || _self.autoplay) && !_self.isReplay) {\r\n _self.trackingcontext = \"autostart\";\r\n this.switchTrackingContext(_self.trackingcontext);\r\n } else {\r\n _self.trackingcontext = \"main\";\r\n this.switchTrackingContext(_self.trackingcontext);\r\n }\r\n } catch (e) {}\r\n try {\r\n if (!_self.playlistloaded) {\r\n _self.loadplaylist();\r\n }\r\n } catch (e) {}\r\n if (_self.callouts.onContentBegin.length > 0) {\r\n for (var i = 0; i < _self.callouts.onContentBegin.length; i++) {\r\n try {\r\n var _f = _self.callouts.onContentBegin[i];\r\n if (typeof(_f) === \"function\") {\r\n _f(_self.id, contentId);\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error running callout - \" + e);\r\n }\r\n }\r\n }\r\n },\r\n onContentPlay: function(playerId, contentId) {\r\n try {\r\n var vdata = this.getContentEntry(contentId);\r\n vdata = window.JSON.parse(vdata);\r\n vdata.video_length = _self.activeVideoObject.trt || 3;\r\n vdata.video_publish_date = _self.activeVideoObject.dateCreated.text.replace(/\\//g, \"-\") || \"\";\r\n vdata.cnnOmniture_prop14 = vdata.cnnOmniture_source = _self.contentpage.cnnOmniture_prop14;\r\n vdata.cnnOmniture_prop19 = _self.contentpage.cnnOmniture_prop19;\r\n vdata.cnnOmniture_prop24 = vdata.cnnOmniture_playername = _self.contentpage.cnnOmniture_prop24;\r\n try {\r\n if (\"autostart\" == _self.trackingcontext) {\r\n vdata.is_auto = 1;\r\n }\r\n } catch (e) {}\r\n _self.contentpage.sendVideoEvent(vdata, \"video-start\", playerId);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error on contentplay : video-start: \" + e.message);\r\n }\r\n },\r\n onContentPause: function(playerId, contentId, paused) {\r\n try {\r\n var vdata = this.getContentEntry(contentId);\r\n vdata = window.JSON.parse(vdata);\r\n vdata.paused = paused;\r\n vdata.cnnOmniture_prop14 = vdata.cnnOmniture_source = _self.contentpage.cnnOmniture_prop14;\r\n vdata.cnnOmniture_prop19 = _self.contentpage.cnnOmniture_prop19;\r\n vdata.cnnOmniture_prop24 = vdata.cnnOmniture_playername = _self.contentpage.cnnOmniture_prop24;\r\n _self.contentpage.sendVideoEvent(vdata, \"video-pause\", playerId);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"error in onContentPause - \" + e);\r\n }\r\n if (!this.isPaused()) {\r\n VideoPlayerManager.pauseplayers(_self.id);\r\n _self.isPlaying = true;\r\n _self.isPaused = false;\r\n } else {\r\n _self.isPlaying = false;\r\n _self.isPaused = true;\r\n } if (_self.callouts.onContentPause.length > 0) {\r\n for (var i = 0; i < _self.callouts.onContentPause.length; i++) {\r\n try {\r\n var _f = _self.callouts.onContentPause[i];\r\n if (typeof(_f) === \"function\") {\r\n _f(_self.id, contentId, paused);\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error running callout - \" + e);\r\n }\r\n }\r\n }\r\n },\r\n onContentBuffering: function(playerId, contentId, buffering) {\r\n try {\r\n var vdata = this.getContentEntry(contentId);\r\n vdata = window.JSON.parse(vdata);\r\n vdata.buffering = buffering;\r\n vdata.cnnOmniture_prop14 = vdata.cnnOmniture_source = _self.contentpage.cnnOmniture_prop14;\r\n vdata.cnnOmniture_prop19 = _self.contentpage.cnnOmniture_prop19;\r\n vdata.cnnOmniture_prop24 = vdata.cnnOmniture_playername = _self.contentpage.cnnOmniture_prop24;\r\n _self.contentpage.sendVideoEvent(vdata, \"video-buffer\", playerId);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"error in onContentBuffering - \" + e);\r\n }\r\n },\r\n onTrackingContentSeek: function(playerId, dataObj) {\r\n try {\r\n var vdata = this.getContentEntry(this.getContentId());\r\n vdata = window.JSON.parse(vdata);\r\n vdata.cnnOmniture_prop14 = vdata.cnnOmniture_source = _self.contentpage.cnnOmniture_prop14;\r\n vdata.cnnOmniture_prop19 = _self.contentpage.cnnOmniture_prop19;\r\n vdata.cnnOmniture_prop24 = vdata.cnnOmniture_playername = _self.contentpage.cnnOmniture_prop24;\r\n _self.contentpage.sendVideoEvent(vdata, \"video-scrub\", playerId);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"error in onTrackingContentSeek - \" + e);\r\n }\r\n },\r\n onContentPlayhead: function(playerId, contentId, playhead, duration) {\r\n try {\r\n var vc = new _self.contentpage._jsmd.plugin.gMONVideoCollection();\r\n if (playhead > (duration / 2) && vc.get(playerId, \"hasScrubbed\") == false && vc.get(playerId, \"pastHalf\") == false) {\r\n var vdata = this.getContentEntry(contentId);\r\n vdata = window.JSON.parse(vdata);\r\n vdata.cnnOmniture_prop14 = vdata.cnnOmniture_source = _self.contentpage.cnnOmniture_prop14;\r\n vdata.cnnOmniture_prop19 = _self.contentpage.cnnOmniture_prop19;\r\n vdata.cnnOmniture_prop24 = vdata.cnnOmniture_playername = _self.contentpage.cnnOmniture_prop24;\r\n _self.contentpage.sendVideoEvent(vdata, \"video-fifty_percent\", playerId);\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"error in onContentPlayhead - \" + e);\r\n }\r\n if (_self.callouts.onContentPlayhead.length > 0) {\r\n for (var i = 0; i < _self.callouts.onContentPlayhead.length; i++) {\r\n try {\r\n var _f = _self.callouts.onContentPlayhead[i];\r\n if (typeof(_f) === \"function\") {\r\n _f(_self.id, contentId, playhead, duration);\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error running callout - \" + e);\r\n }\r\n }\r\n }\r\n },\r\n onContentEnd: function(playerId, contentId) {\r\n try {\r\n var vdata = this.getContentEntry(contentId);\r\n vdata = window.JSON.parse(vdata);\r\n vdata.cnnOmniture_prop14 = vdata.cnnOmniture_source = _self.contentpage.cnnOmniture_prop14;\r\n vdata.cnnOmniture_prop19 = _self.contentpage.cnnOmniture_prop19;\r\n vdata.cnnOmniture_prop24 = vdata.cnnOmniture_playername = vdata.cnnOmniture_playername = _self.contentpage.cnnOmniture_prop24;\r\n _self.contentpage.sendVideoEvent(vdata, \"video-complete\", playerId);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"error in onContentEnd - \" + e);\r\n }\r\n _self.isPlaying = false;\r\n _self.isReplay = false;\r\n if (!_self.play_list.hasMoreItems() && _self.play_list.mode === VideoPlaylist.MODES.REPEAT) {\r\n _self.play_list.resetPointer();\r\n }\r\n try {\r\n if (!_self.showSlate()) {\r\n _self.playNext();\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Couldn't load slate - \" + e.message);\r\n _self.playNext();\r\n }\r\n if (_self.callouts.onContentEnd.length > 0) {\r\n for (var i = 0; i < _self.callouts.onContentEnd.length; i++) {\r\n try {\r\n var _f = _self.callouts.onContentEnd[i];\r\n if (typeof(_f) === \"function\") {\r\n _f(_self.id, contentId);\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error running callout - \" + e);\r\n }\r\n }\r\n }\r\n },\r\n onContentReplayRequest: function(playerId, contentId, additionalParams) {\r\n _self.isReplay = true;\r\n _self.trackingcontext = \"main\";\r\n this.switchTrackingContext(_self.trackingcontext);\r\n },\r\n onContentEntryLoadError: function(playerId, contentId, errorMessage, errorCode, queue) {\r\n _self.handleContentError(\"onContentEntryLoadError\", playerId, contentId, errorMessage);\r\n },\r\n onContentError: function(playerId, contentId, errorMessage) {\r\n _self.handleContentError(\"onContentError\", playerId, contentId, errorMessage);\r\n },\r\n onCVPVisibilityChange: function(playerId, visible) {},\r\n onPageVisibilityChange: function(playerId, visible) {},\r\n onViewportVisibilityChange: function(playerId, visible) {},\r\n onAdError: function(playerId, errorMessage) {},\r\n onAdPrerollUrl: function(playerId, contentId) {},\r\n onAdPostrollUrl: function(playerId, contentId) {\r\n VideoPlayer.utils.log(\"postroll url coming in for - \" + contentId);\r\n return false;\r\n },\r\n onAdSensitive: function(playerId, contentId) {},\r\n onContentEntryLoad: function(playerId, contentId, isQueue) {},\r\n onContentResize: function(playerId, width, height) {},\r\n onContentVolume: function(playerId, muted, volume) {},\r\n onContentBitrateInfo: function(playerId, currentBitrateId, maxBitrateId, currentBitrate) {},\r\n onContentBitrateChangeStart: function(playerId, currentBitrateId, maxBitrateId, currentBitrate) {},\r\n onContentBitrateChangeEnd: function(playerId, currentBitrateId, maxBitrateId, currentBitrate) {},\r\n onContentBitrateChangeError: function(playerId, error, currentBitrateId, maxBitrateId, currentBitrate) {},\r\n onContentComplete: function(playerId, contentId) {},\r\n onContentMetadata: function(playerId, contentId, duration, width, height) {},\r\n onContentQueue: function(playerId, queue) {},\r\n onContentQueueAutoplay: function(playerId, autoplay) {},\r\n onTrackingAdStart: function(playerId, dataObj) {},\r\n onTrackingAdComplete: function(playerId, dataObj) {},\r\n onTrackingAdProgress: function(playerId, dataObj) {},\r\n onTrackingAdCountdown: function(playerId, dataObj) {},\r\n onTrackingAdClick: function(playerId, dataObj) {},\r\n onTrackingContentPlay: function(playerId, dataObj) {},\r\n onTrackingContentBegin: function(playerId, dataObj) {},\r\n onTrackingContentProgress: function(playerId, dataObj) {},\r\n onTrackingContentComplete: function(playerId, dataObj) {},\r\n onTrackingContentReplay: function(playerId, dataObj) {},\r\n onTrackingContentSeek: function(playerId, dataObj) {},\r\n onTrackingContentSegmentPlay: function(playerId, dataObj) {},\r\n onTrackingContentSegmentComplete: function(playerId, dataObj) {},\r\n onTrackingFullscreen: function(playerId, dataObj) {},\r\n onTrackingMuted: function(playerId, dataObj) {},\r\n onTrackingPaused: function(playerId, dataObj) {}\r\n };\r\n\r\n function _init() {\r\n if (!VideoPlayer.utils.canPlayFlash() && !VideoPlayer.utils.canPlayHTML5()) {\r\n return;\r\n }\r\n _self.canPlay = true;\r\n _self.play_list.load(_self.temp_list);\r\n _player = {\r\n id: _self.id,\r\n width: _self.playerWidth,\r\n height: _self.playerHeight,\r\n flashVars: {\r\n context: (VideoPlayerManager.ispreview) ? \"preview\" : _self.profile,\r\n autostart: ((!_self.has_poster && !_self.autoplay) || _self.profile === \"twitter\") ? \"off\" : \"on\",\r\n site: \"cnnmoney\",\r\n profile: _self.flashVarsProfile\r\n },\r\n embed: {\r\n containerSwf: VideoPlayer.utils.getContainerPath(),\r\n expressInstallSwf: \"/.element/apps/cvp2/assets/expressInstall.swf\",\r\n options: {\r\n quality: \"high\",\r\n bgcolor: \"#000000\",\r\n allowFullScreen: \"true\",\r\n allowScriptAccess: \"always\",\r\n wmode: \"transparent\"\r\n }\r\n }\r\n };\r\n if (navigator.userAgent.toLowerCase().indexOf(\"msie 8\") == -1) {\r\n _player.playerType = (_self.profile === \"twitter\") ? \"html5\" : VideoPlayer.utils.getBestPlayer();\r\n }\r\n if (_self.freewheelJsUrl != \"\") {\r\n _player.freewheelJsUrl = _self.freewheelJsUrl;\r\n }\r\n var playercallbacks = default_callbacks;\r\n for (var c in _self.callbacks) {\r\n playercallbacks[c] = _self.callbacks[c];\r\n }\r\n for (var c in playercallbacks) {\r\n _player[c] = playercallbacks[c];\r\n }\r\n _self.contentpage.cnnOmniture_prop14 = null;\r\n _self.contentpage.cnnOmniture_prop19 = null;\r\n _self.contentpage.cnnOmniture_prop17 = null;\r\n _self.contentpage.cnnOmniture_prop24 = null;\r\n _self.registerCallouts(_self.initial_callouts);\r\n }\r\n this.init = function() {\r\n _player = new CVP(_player);\r\n this.embed();\r\n };\r\n this.loadplaylist = function() {\r\n if (this.playlistloaded) {\r\n return;\r\n }\r\n if (this.auto_playlist) {\r\n if (this.defaultSection == null && (this.profile == \"story\" || this.profile == \"wp_blogs\")) {\r\n var firstVideoId = this.play_list.getFirstItemId();\r\n var playlistItem = this.play_list.getItem(firstVideoId);\r\n var branding = (playlistItem.branding !== undefined) ? playlistItem.branding : \"\";\r\n var category = (playlistItem.category !== undefined) ? playlistItem.category : \"\";\r\n this.defaultSection = VideoPlayer.utils.getDefaultSection(branding, category);\r\n }\r\n if (this.defaultSection != null) {\r\n if (this.profile === \"story\") {\r\n for (var i = 0; i < this.play_list.list.length; i++) {\r\n if (this.play_list.list[i].adSensitive === \"yes\") {\r\n this.playlistloaded = true;\r\n this.play_list.setLimit(this.play_list.list.length);\r\n return;\r\n }\r\n }\r\n }\r\n VideoPlayer.utils.getPayload(this.defaultSection, true, \"xml\", \"defaultplaylist\", {\r\n success: function(reqId, data, textStatus, jqXHR) {\r\n var playlist = [];\r\n var $xmldata = jQuery(data);\r\n var $video = $xmldata.find(\"video\");\r\n for (i = 0; i < $video.length; i++) {\r\n var videoId = $video.eq(i).find(\"id\").text();\r\n var headline = $video.eq(i).find(\"headline\").text();\r\n var dek = $video.eq(i).find(\"description\").text();\r\n if (videoId != \"\" && headline != \"\") {\r\n if (\"/\" != videoId.charAt(0)) {\r\n videoId = \"/\" + videoId;\r\n }\r\n playlist.push({\r\n \"id\": videoId,\r\n \"hed\": headline,\r\n \"dek\": dek\r\n });\r\n }\r\n }\r\n _self.play_list.append(playlist);\r\n },\r\n error: function(reqId, jqXHR, textStatus, errorThrown) {}\r\n });\r\n }\r\n }\r\n this.playlistloaded = true;\r\n };\r\n this.resizeTo = function(width, height) {\r\n try {\r\n document.getElementById(this.id).width = width;\r\n document.getElementById(this.id).height = height;\r\n _player.resize(width, height);\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error trying to resize to \" + width + \"x\" + height + \" - \" + e);\r\n }\r\n };\r\n this.hideSlates = function() {\r\n if (!this.disableNextUpSlate) {\r\n this.nextUpSlate.hide();\r\n }\r\n if (!this.disableEndSlate) {\r\n this.endSlate.hide();\r\n }\r\n };\r\n this.setplayerElems = function() {\r\n var player_holderid = \"cnnplayer_\" + this.id;\r\n var cvpplayerobject = document.getElementById(this.id);\r\n var parent = cvpplayerobject.parentNode;\r\n var traversals = 0;\r\n do {\r\n parent = parent.parentNode;\r\n traversals++;\r\n } while (parent.className != \"cnnplayer\" && traversals < 4);\r\n parent.setAttribute(\"id\", player_holderid);\r\n if (this.playerWidth < 560 && this.playerWidth >= 420) {\r\n parent.className = parent.className + \" medium-player\";\r\n } else {\r\n if (this.playerWidth < 420) {\r\n parent.className = parent.className + \" small-player\";\r\n }\r\n }\r\n this.player_elem = parent;\r\n this.hed_elem = document.querySelector(\".\" + this.hedClass);\r\n this.dek_elem = document.querySelector(\".\" + this.dekClass);\r\n this.countdown_elem = document.querySelector(\".\" + this.countdownClass);\r\n this.byline_elem = document.querySelector(\".\" + this.bylineClass);\r\n try {\r\n var playerParent = document.getElementById(this.id).parentNode;\r\n if (!this.disableEndSlate) {\r\n this.endSlate = new VideoPlayerSlate({\r\n targetNode: playerParent,\r\n playerId: _self.id,\r\n type: VideoPlayerSlate.TYPES.END,\r\n clickTarget: _self.slateClickTarget\r\n });\r\n }\r\n if (!this.disableNextUpSlate) {\r\n this.nextUpSlate = new VideoPlayerSlate({\r\n targetNode: playerParent,\r\n playerId: _self.id,\r\n type: VideoPlayerSlate.TYPES.NEXTUP,\r\n clickTarget: _self.slateClickTarget,\r\n onCountdownComplete: function() {\r\n try {\r\n _self.playNext();\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error trying to call next video. - \" + e.message);\r\n }\r\n }\r\n });\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error creating slates. \" + e.message);\r\n }\r\n };\r\n this.updateexternalitems = function(vidjson) {\r\n var vid = vidjson[\"id\"];\r\n var hed = (typeof(vidjson.headline) != \"undefined\") ? vidjson.headline : \"\";\r\n var dek = (typeof(vidjson.description) != \"undefined\") ? vidjson.description : \"\";\r\n var producer = \"\";\r\n var producer_tw = \"\";\r\n var producer_url = \"\";\r\n if (\"\" != hed) {\r\n if (null != this.hed_elem) {\r\n this.hed_elem.innerHTML = hed;\r\n }\r\n if (null != this.dek_elem) {\r\n this.dek_elem.innerHTML = dek;\r\n }\r\n }\r\n if (null != this.byline_elem) {\r\n if (typeof(vidjson.producer) != \"undefined\") {\r\n if (typeof(vidjson.producer.name) != \"undefined\") {\r\n producer = (typeof(vidjson.producer.name.text) != \"undefined\") ? vidjson.producer.name.text : producer;\r\n producer_tw = (typeof(vidjson.producer.name[\"twitterhandle\"]) != \"undefined\") ? vidjson.producer.name[\"twitterhandle\"] : producer_tw;\r\n producer_url = (typeof(vidjson.producer.name[\"url\"]) != \"undefined\") ? vidjson.producer.name[\"url\"] : producer_url;\r\n } else {\r\n if (typeof(vidjson.producer[0]) != \"undefined\" && typeof(vidjson.producer[0].name) != \"undefined\") {\r\n producer = (typeof(vidjson.producer[0].name.text) != \"undefined\") ? vidjson.producer[0].name.text : producer;\r\n producer_tw = (typeof(vidjson.producer[0].name[\"twitterhandle\"]) != \"undefined\") ? vidjson.producer[0].name[\"twitterhandle\"] : producer_tw;\r\n producer_url = (typeof(vidjson.producer[0].name[\"url\"]) != \"undefined\") ? vidjson.producer[0].name[\"url\"] : producer_url;\r\n }\r\n }\r\n }\r\n var byline_html = \"\";\r\n if (\"\" != producer) {\r\n if (\"\" != producer_url) {\r\n byline_html = 'By ' + producer + \"\";\r\n } else {\r\n byline_html = 'By ' + producer + \"\";\r\n } if (\"\" != producer_tw) {\r\n byline_html += '  @' + producer_tw + \"\";\r\n }\r\n }\r\n this.byline_elem.innerHTML = byline_html;\r\n }\r\n var sharevid = vid.replace(\"/video/\", \"video/\");\r\n // try {\r\n // cnnUpdateShareWidget({\r\n // \"video_id\": sharevid,\r\n // \"title\": hed\r\n // });\r\n // } catch (e) {}\r\n };\r\n this.adcountdown_start = function(duration) {\r\n var playerclass = this.player_elem.className;\r\n playerclass += \" showcountdown\";\r\n this.player_elem.className = playerclass;\r\n if (!isNaN(duration) && this.isHTML5) {\r\n var countdown = setInterval(function() {\r\n _self.countdown_elem.innerHTML = \"Your video will play in \" + VideoPlayer.utils.time_tostring(duration);\r\n duration--;\r\n if (duration < 0) {\r\n clearInterval(countdown);\r\n _self.countdown_elem.innerHTML = \"\";\r\n playerclass = _self.player_elem.className;\r\n playerclass = playerclass.replace(\" showcountdown\", \"\");\r\n _self.player_elem.className = playerclass;\r\n }\r\n }, 1000);\r\n }\r\n };\r\n this.adcountdown_update = function(duration) {\r\n if (isNaN(duration) || this.isHTML5) {\r\n return;\r\n }\r\n _self.countdown_elem.innerHTML = \"Your video will play in \" + VideoPlayer.utils.time_tostring(duration);\r\n };\r\n this.adcountdown_remove = function() {\r\n _self.countdown_elem.innerHTML = \"\";\r\n var playerclass = this.player_elem.className;\r\n playerclass = playerclass.replace(\" showcountdown\", \"\");\r\n _self.player_elem.className = playerclass;\r\n };\r\n this.setHTML5flag = function() {\r\n if (_player.getPlayerType() == \"html5\") {\r\n this.isHTML5 = true;\r\n } else {\r\n this.isHTML5 = false;\r\n }\r\n };\r\n this.embed = function() {\r\n _player.embed(this.playerDivId);\r\n };\r\n this.embedNeedsFlash = function() {\r\n try {\r\n var s = '\"\"';\r\n var elem = document.getElementById(this.playerDivId).parentNode;\r\n if (elem) {\r\n elem.innerHTML = s;\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"could not embed flash message - \" + e);\r\n }\r\n };\r\n this.registerCallouts = function(callouts) {\r\n if (typeof(callouts.onCVPReady) === \"function\") {\r\n this.callouts.onCVPReady.push(callouts.onCVPReady);\r\n }\r\n if (typeof(callouts.onContentBegin) === \"function\") {\r\n this.callouts.onContentBegin.push(callouts.onContentBegin);\r\n }\r\n if (typeof(callouts.onContentPause) === \"function\") {\r\n this.callouts.onContentPause.push(callouts.onContentPause);\r\n }\r\n if (typeof(callouts.onContentEnd) === \"function\") {\r\n this.callouts.onContentEnd.push(callouts.onContentEnd);\r\n }\r\n if (typeof(callouts.onContentPlayhead) === \"function\") {\r\n this.callouts.onContentPlayhead.push(callouts.onContentPlayhead);\r\n }\r\n };\r\n this.pause = function() {\r\n _player.pause();\r\n };\r\n this.play = function(id, allowPastLimit) {\r\n try {\r\n var playListItem = this.play_list.getItem(id);\r\n if (!playListItem) {\r\n VideoPlayer.utils.log(\"Cannot play \" + id + \" - Not found in playlist.\");\r\n return;\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error accessing playlist in VideoPlayer.play(); - \" + e);\r\n return;\r\n }\r\n try {\r\n this.play_list.setPointer(id, allowPastLimit);\r\n var profile = _player.getContext();\r\n var ssid = this.ssid || VideoPlayerAds.get_ssid(profile, id, this.contentpage, playListItem);\r\n if (\"\" != ssid) {\r\n _player.setAdSection(ssid);\r\n }\r\n if (this.play_list.getCurrentItemId() === id) {\r\n setTimeout(function() {\r\n _player.play(id);\r\n }, 100);\r\n }\r\n } catch (e) {\r\n VideoPlayer.utils.log(\"Error in VideoPlayer.play()\\nid=\" + id + \"\\n\\n\" + e.message);\r\n }\r\n };\r\n this.playNext = function() {\r\n if (this.play_list.hasMoreItems()) {\r\n this.play_list.nextItem();\r\n var nextVideoId = this.play_list.getCurrentItemId();\r\n this.play(nextVideoId);\r\n } else {\r\n if (this.play_list.getNumItems() > 0) {\r\n try {\r\n this.showSlate();\r\n } catch (e) {}\r\n }\r\n }\r\n };\r\n this.handleContentError = function(type, playerId, contentId, errorMessage) {\r\n switch (type) {\r\n case \"onContentError\":\r\n case \"onContentEntryLoadError\":\r\n VideoPlayer.utils.log(type + \" - \" + contentId + \" - \" + errorMessage);\r\n this.play_list.remove(contentId);\r\n if (this.play_list.hasMoreItems()) {\r\n this.playNext();\r\n } else {\r\n try {\r\n this.showSlate();\r\n } catch (e) {}\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n this.showSlate = function() {\r\n if (!this.play_list.hasMoreItems() && this.play_list.mode !== VideoPlaylist.MODES.REPEAT && !this.disableNextUpSlate) {\r\n this.nextUpSlate.hide();\r\n if (!this.disableEndSlate) {\r\n this.endSlate.show(this.play_list);\r\n return true;\r\n }\r\n return false;\r\n } else {\r\n if (!this.disableEndSlate) {\r\n this.endSlate.hide();\r\n if (!this.disableNextUpSlate) {\r\n this.nextUpSlate.show(this.play_list);\r\n return true;\r\n }\r\n return false;\r\n }\r\n }\r\n return false;\r\n };\r\n this.replay = function() {\r\n try {\r\n _player.replay();\r\n } catch (e) {\r\n var playlistItemId = this.play_list.getCurrentItemId();\r\n this.isReplay = true;\r\n this.trackingcontext = \"main\";\r\n _player.switchTrackingContext(this.trackingcontext);\r\n this.play(playlistItemId);\r\n }\r\n };\r\n this.getCurrentPlayTime = function() {\r\n return parseInt(_player.getPlayhead()) * 1000;\r\n };\r\n this.queue = function(vid) {};\r\n this.emptyQueue = function() {};\r\n this.seek = function(sec) {};\r\n _init();\r\n}\r\nVideoPlayer.utils = {\r\n isSecure: (location.protocol === \"https:\") ? true : false,\r\n canPlayFlash: function() {\r\n if (typeof CVP.swfobject == \"object\" && CVP.swfobject.hasFlashPlayerVersion(\"9.0\")) {\r\n return true;\r\n }\r\n return false;\r\n },\r\n canPlayHTML5: function() {\r\n var canPlay = false;\r\n try {\r\n var v = document.createElement(\"video\");\r\n if (v.canPlayType && v.canPlayType(\"video/mp4\").replace(/no/, \"\")) {\r\n canPlay = true;\r\n }\r\n v = null;\r\n } catch (e) {\r\n canPlay = false;\r\n }\r\n return canPlay;\r\n },\r\n getBestPlayer: function() {\r\n var ua = navigator.userAgent.toLowerCase();\r\n if (ua.indexOf(\"android\") > -1 || ua.indexOf(\"silk\") > -1 || ua.indexOf(\"kindle\") > -1) {\r\n if (this.canPlayFlash()) {\r\n return \"flash\";\r\n }\r\n return \"html5\";\r\n }\r\n if (ua.indexOf(\"ipad\") > -1 || ua.indexOf(\"iphone\") > -1 || ua.indexOf(\"ipod\") > -1) {\r\n return \"html5\";\r\n }\r\n if (this.canPlayFlash()) {\r\n return \"flash\";\r\n }\r\n if (this.canPlayHTML5()) {\r\n return \"html5\";\r\n }\r\n return \"\";\r\n },\r\n getContainerPath: function() {\r\n var env = {\r\n dev: \"/.element/apps/cvp2/assets/cvp_main_container.swf\",\r\n pro: \"https://i.cdn.turner.com/money/.element/apps/cvp2/assets/cvp_main_container.swf\",\r\n pro_secure: \"https://s.cdn.turner.com/money/.element/apps/cvp2/assets/cvp_main_container.swf\"\r\n };\r\n var uri = env[\"pro\"];\r\n switch (location.hostname) {\r\n case \"money.cnn.com\":\r\n uri = env[\"pro\"];\r\n break;\r\n case \"secure.money.cnn.com\":\r\n uri = env[\"pro_secure\"];\r\n break;\r\n default:\r\n uri = env[\"dev\"];\r\n break;\r\n }\r\n return uri;\r\n },\r\n getDefaultSection: function(branding, category) {\r\n var defaultSection = \"/.element/ssi/auto/4.0/video/xml/latest.xml\";\r\n var secondaryList = [\"fortune\", \"luxury\", \"markets\", \"moneymag\", \"news\", \"pf\", \"smallbusiness\", \"technology\", \"luxury\", \"media\"];\r\n if (branding != \"\") {\r\n defaultSection = \"/.element/ssi/auto/4.0/video/xml/branding/\" + branding + \".xml\";\r\n } else {\r\n for (var i = 0; i < secondaryList.length; i++) {\r\n if (secondaryList[i] == category) {\r\n defaultSection = \"/.element/ssi/auto/4.0/video/xml/\" + category + \".xml\";\r\n break;\r\n }\r\n }\r\n }\r\n return defaultSection;\r\n },\r\n getPosterImage: function(images, width) {\r\n var defaultPoster = ((VideoPlayer.utils.isSecure) ? \"https://s.\" : \"http://i2.\") + \"cdn.turner.com/money/.element/img/4.0/video/default_thumbs/cnnmoney.620x348.jpg\";\r\n for (var key in images) {\r\n if (key.indexOf(width + \"x\") === 0) {\r\n var _img = new Image();\r\n _img.src = images[key];\r\n return _img;\r\n }\r\n }\r\n var smallerImage = \"\";\r\n var largerImage = \"\";\r\n for (var key in images) {\r\n var k = key.split(\"x\");\r\n var w = k[0];\r\n var h = k[1];\r\n if (w <= width) {\r\n smallerImage = images[key];\r\n }\r\n if (w >= width) {\r\n largerImage = images[key];\r\n break;\r\n }\r\n }\r\n var _img = new Image();\r\n if (largerImage !== \"\") {\r\n _img.src = largerImage;\r\n } else {\r\n if (smallerImage !== \"\") {\r\n _img.src = smallerImage;\r\n } else {\r\n _img.src = defaultPoster;\r\n }\r\n }\r\n return _img;\r\n },\r\n getImages: function($images, sizes) {\r\n if (sizes === undefined) {\r\n var sizes = [\"160x90\", \"576x324\", \"620x348\", \"1024x576\", \"1280x720\"];\r\n }\r\n var images = {};\r\n for (var i = 0; i < $images.length; i++) {\r\n for (var s = 0; s < sizes.length; s++) {\r\n var _dim = sizes[s].split(\"x\");\r\n var desiredWidth = _dim[0];\r\n var $img = jQuery($images[i]);\r\n if ($img.text().match(sizes[s]) || $img.attr(\"width\") == desiredWidth) {\r\n images[sizes[s]] = (VideoPlayer.utils.isSecure) ? $img.text().replace(\"http://i2.\", \"https://s.\") : $img.text();\r\n }\r\n }\r\n }\r\n return images;\r\n },\r\n getPayload: function(uri, async, dataType, id, callbacks) {\r\n uri = uri.replace(\"4.0video\", \"4.0/video\");\r\n uri = uri.replace(\"4.0//video\", \"4.0/video\");\r\n jQuery.ajax({\r\n reqId: id,\r\n async: async,\r\n dataType: dataType,\r\n url: uri,\r\n success: function(data, textStatus, jqXHR) {\r\n if (typeof(callbacks.success) == \"function\") {\r\n callbacks.success(this.reqId, data, textStatus, jqXHR);\r\n }\r\n },\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n if (typeof(callbacks.error) == \"function\") {\r\n callbacks.error(this.reqId, jqXHR, textStatus, errorThrown);\r\n }\r\n }\r\n });\r\n },\r\n log: function(s) {\r\n try {\r\n console.log(s);\r\n } catch (e) {}\r\n },\r\n warn: function(s) {\r\n try {\r\n console.warn(s);\r\n } catch (e) {}\r\n },\r\n secureHost: function(src) {\r\n if (src.indexOf(\"https://ht.cdn.turner.com/money/big/ads/\") === 0) {\r\n src = src.replace(\"https://ht.cdn.turner.com/money/big/ads/\", \"https://secure.money.cnn.com/big/ads/\");\r\n }\r\n src = src.replace(/http:/g, \"https:\");\r\n src = src.replace(/http\\%/g, \"https%\");\r\n return src;\r\n },\r\n time_tostring: function(totalsecs) {\r\n var timedisplay = \"\";\r\n var totalsecs = Math.round(totalsecs);\r\n var hours = Math.floor(totalsecs / 3600);\r\n var mins = Math.floor((totalsecs - (hours * 3600)) / 60);\r\n var seconds = totalsecs - (hours * 3600) - (mins * 60);\r\n if (hours > 0) {\r\n if (hours < 10) {\r\n timedisplay += \"0\";\r\n }\r\n timedisplay += hours;\r\n }\r\n if (mins > 0) {\r\n timedisplay += \":\";\r\n if (mins < 10) {\r\n timedisplay += \"0\";\r\n }\r\n timedisplay += mins;\r\n } else {\r\n timedisplay += \"00\";\r\n }\r\n timedisplay += \":\";\r\n if (seconds < 10) {\r\n timedisplay += \"0\";\r\n }\r\n timedisplay += seconds;\r\n return timedisplay;\r\n }\r\n};\r\n\r\nfunction VideoPlaylist(limit, mode) {\r\n var _self = this;\r\n this.list = [];\r\n this.pointer = -1;\r\n this.limit = limit || 7;\r\n this.endOfList = true;\r\n this.mode = mode || \"normal\";\r\n\r\n function _sanitize(list) {\r\n var temp_list = [];\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i].id === undefined) {\r\n continue;\r\n }\r\n if (\"/\" != list[i].id.charAt(0)) {\r\n list[i].id = \"/\" + list[i].id;\r\n }\r\n temp_list[i] = list[i].id;\r\n }\r\n var playlist = [];\r\n playlist.push(list[0]);\r\n for (var i = 1; i < temp_list.length; i++) {\r\n var found_dup = false;\r\n for (var j = 0; j < playlist.length; j++) {\r\n if (temp_list[i].match(playlist[j].id) || playlist[j].id.match(temp_list[i])) {\r\n found_dup = true;\r\n break;\r\n }\r\n }\r\n if (found_dup == false) {\r\n playlist.push(list[i]);\r\n }\r\n }\r\n return playlist;\r\n }\r\n this.append = function(list) {\r\n try {\r\n if (list.length === undefined) {\r\n return;\r\n }\r\n var appendList = _sanitize(list);\r\n if (appendList.length == 0) {\r\n return;\r\n }\r\n for (var i = 0; i < appendList.length; i++) {\r\n this.list.push(appendList[i]);\r\n }\r\n var playlist = _sanitize(this.list);\r\n this.list = playlist;\r\n this.loadPlaylistItemData();\r\n this.updateEndOfListFlag();\r\n } catch (e) {\r\n console.log(\"VideoPlaylist could not append new list - \" + e);\r\n }\r\n };\r\n this.getCurrentItem = function() {\r\n if (this.list[this.pointer]) {\r\n return this.list[this.pointer];\r\n }\r\n return null;\r\n };\r\n this.getCurrentItemId = function() {\r\n if (this.list[this.pointer]) {\r\n return this.list[this.pointer].id;\r\n }\r\n return \"\";\r\n };\r\n this.getFirstItemId = function() {\r\n if (this.list.length > 0) {\r\n return this.list[0].id;\r\n }\r\n return \"\";\r\n };\r\n this.getIndex = function(id) {\r\n for (var i = 0; i < this.list.length; i++) {\r\n if (this.list[i].id == id) {\r\n return i;\r\n }\r\n }\r\n return null;\r\n };\r\n this.getItem = function(id) {\r\n for (var i = 0; i < this.list.length; i++) {\r\n var itemid = this.list[i].id;\r\n if (itemid === id) {\r\n return this.list[i];\r\n }\r\n }\r\n return null;\r\n };\r\n this.getItemsInRange = function(startIndex, endIndex) {\r\n var list = [];\r\n if (startIndex < 0) {\r\n throw new Error(\"Out of range exception. Cannot access playlist in position \" + startIdex);\r\n }\r\n for (var i = startIndex; i <= endIndex || i >= this.list.length; i++) {\r\n if (i >= this.list.length) {\r\n break;\r\n }\r\n if (this.list[i]) {\r\n list.push(this.list[i]);\r\n }\r\n }\r\n return list;\r\n };\r\n this.getLastItemId = function() {\r\n if (this.list[this.list.length - 1]) {\r\n return this.list[this.list.length - 1].id;\r\n }\r\n return \"\";\r\n };\r\n this.getNumItems = function() {\r\n return this.list.length;\r\n };\r\n this.hasMoreItems = function() {\r\n return (!this.endOfList);\r\n };\r\n this.injectItem = function(item, index) {\r\n if (item === undefined) {\r\n throw new Error(\"Nothing to inject into playlist. Missing item parameter.\");\r\n }\r\n if (index === undefined) {\r\n var index = this.pointer + 1;\r\n }\r\n if (index > this.list.length - 1) {\r\n index = this.list.length - 1;\r\n }\r\n if (index == -1) {\r\n index = 0;\r\n }\r\n this.list.splice(index, 0, item);\r\n var playlist = _sanitize(this.list);\r\n this.list = playlist;\r\n this.loadPlaylistItemData(false);\r\n this.updateEndOfListFlag();\r\n };\r\n this.load = function(list) {\r\n if (list.length === undefined) {\r\n throw new Error(\"Missing Array parameter\");\r\n }\r\n var playlist = _sanitize(list);\r\n if (playlist.length == 0) {\r\n throw new Error(\"Playlist resulted in 0 valid entries.\");\r\n }\r\n this.list = playlist;\r\n this.resetPointer();\r\n this.loadPlaylistItemData(false);\r\n this.updateEndOfListFlag();\r\n };\r\n this.loadPlaylistItemData = function(async) {\r\n if (async === undefined) {\r\n var async = true;\r\n }\r\n var callbacks = {\r\n success: function(videoId, data, textStatus, jqXHR) {\r\n var index = _self.getIndex(videoId);\r\n var $xmldata = jQuery(data);\r\n if ($xmldata[0].firstChild.nodeName === \"html\") {\r\n data = jqXHR.responseText.replace(\" images > image\");\r\n var $files = $xmldata.find(\"video > files > file\");\r\n _self.list[index].category = $xmldata.find(\"video > category\").text();\r\n _self.list[index].branding = $xmldata.find(\"video > branding\").text();\r\n _self.list[index].source = $xmldata.find(\"video > source\").text();\r\n _self.list[index].adSensitive = $xmldata.find(\"video > isAdSensitive\").text();\r\n _self.list[index].headline = _self.list[index].hed = $xmldata.find(\"video > headline\").text();\r\n _self.list[index].jqFiles = $files;\r\n _self.list[index].jqImages = $images;\r\n _self.list[index].images = VideoPlayer.utils.getImages($images);\r\n _self.list[index].poster = _self.list[index].img = VideoPlayer.utils.getPosterImage(_self.list[index].images, \"620\");\r\n _self.list[index].thumb = VideoPlayer.utils.getPosterImage(_self.list[index].images, \"160\");\r\n _self.list[index]._dataComplete = \"success\";\r\n if (_self.list[index].headline === \"\") {}\r\n },\r\n error: function(videoId, jqXHR, textStatus, errorThrown) {\r\n _self.remove(videoId);\r\n }\r\n };\r\n for (var i = 0; i < this.list.length; i++) {\r\n if (this.list[i]._dataComplete === undefined) {\r\n if (this.list[i].id.indexOf(\"/presenter\") == 0) {\r\n var uri = this.list[i].id + \".xml\";\r\n } else {\r\n var uri = \"/video/data/4.0\" + this.list[i].id + \".xml\";\r\n }\r\n this.list[i]._dataComplete = \"\";\r\n VideoPlayer.utils.getPayload(uri, async, \"xml\", this.list[i].id, callbacks);\r\n }\r\n }\r\n };\r\n this.prevItem = function() {\r\n if (this.pointer != -1) {\r\n this.pointer--;\r\n this.updateEndOfListFlag();\r\n }\r\n };\r\n this.nextItem = function() {\r\n if (this.hasMoreItems()) {\r\n this.pointer++;\r\n this.updateEndOfListFlag();\r\n }\r\n };\r\n this.remove = function(id) {\r\n var idx = this.getIndex(id);\r\n this.list.splice(idx, 1);\r\n if (idx == this.pointer && (idx != 0 && this.list.length > 0)) {\r\n this.pointer--;\r\n }\r\n this.updateEndOfListFlag();\r\n };\r\n this.resetPointer = function() {\r\n this.pointer = -1;\r\n this.updateEndOfListFlag();\r\n };\r\n this.updateEndOfListFlag = function() {\r\n this.endOfList = (this.pointer >= (this.list.length - 1) || (this.pointer >= this.limit - 1));\r\n };\r\n this.setLimit = function(newLimit) {\r\n this.limit = newLimit;\r\n this.updateEndOfListFlag();\r\n };\r\n this.setPointer = function(id, allowPastLimit) {\r\n if (allowPastLimit === undefined) {\r\n var allowPastLimit = false;\r\n }\r\n var pointer = this.getIndex(id);\r\n if (pointer == null) {\r\n throw new Error(\"Cannot set pointer to id - \" + id + \". Item not found.\");\r\n }\r\n if (allowPastLimit === false && pointer >= this.limit) {\r\n throw new Error(\"Cannot set pointer to playlist-item past the limit of \" + this.limit);\r\n }\r\n if (allowPastLimit === true && pointer >= this.limit) {\r\n this.limit = pointer + 1;\r\n }\r\n this.pointer = pointer;\r\n this.updateEndOfListFlag();\r\n };\r\n}\r\nVideoPlaylist.MODES = {\r\n NORMAL: 0,\r\n REPEAT: 1\r\n};\r\n\r\nfunction VideoPlayerSlate(config) {\r\n if (config === undefined) {\r\n throw new Error(\"Missing required parameter to create VideoPlayerSlate object.\");\r\n }\r\n if (config.targetNode === undefined || config.playerId === undefined) {\r\n throw new Error(\"Missing required parameter to create VideoPlayerSlate object.\");\r\n }\r\n var _self = this;\r\n this.type = (config.type !== undefined) ? config.type : VideoPlayerSlate.TYPES.END;\r\n this.rootNode = config.targetNode;\r\n this.playerId = config.playerId;\r\n this.id = this.playerId + \"_\" + this.type + \"Slate\";\r\n this.clickTarget = config.clickTarget || \"top\";\r\n this.seconds = config.seconds || 5;\r\n this.onCountdownComplete = config.onCountdownComplete || null;\r\n this.onCountdownPause = config.onCountdownPause || null;\r\n\r\n function _init() {\r\n var newSlate = document.createElement(\"div\");\r\n newSlate.id = _self.id;\r\n newSlate.className = (_self.type === VideoPlayerSlate.TYPES.NEXTUP) ? \"video-posterboard nextup-slate\" : \"video-posterboard end-slate\";\r\n _self.rootNode.appendChild(newSlate);\r\n _self.buildUI();\r\n }\r\n this.countdown = {\r\n isRunning: false,\r\n isStopped: false,\r\n isPaused: false,\r\n intervalId: null,\r\n start: function() {\r\n if (this.isRunning) {\r\n console.log(\"Cannot start the same counter while its running...\");\r\n return;\r\n }\r\n this.isRunning = true;\r\n this.isStopped = false;\r\n var second = 0;\r\n var $countdownLabel = jQuery(\"div#\" + _self.id + \" .video-slate-countdown\");\r\n $countdownLabel.html(\"0\" + _self.seconds);\r\n this.intervalId = setInterval(function() {\r\n if (!_self.countdown.isPaused) {\r\n second++;\r\n $countdownLabel.html(\"0\" + (_self.seconds - second));\r\n }\r\n if (second >= _self.seconds || _self.countdown.isStopped) {\r\n window.clearInterval(_self.countdown.intervalId);\r\n _self.countdown.complete();\r\n }\r\n }, 1000);\r\n },\r\n pause: function() {\r\n this.isPaused = !this.isPaused;\r\n if (typeof(_self.onCountdownPause) === \"function\") {\r\n _self.onCountdownPause(this.isPaused);\r\n }\r\n },\r\n stop: function() {\r\n this.isStopped = true;\r\n },\r\n complete: function() {\r\n this.isRunning = false;\r\n if (this.isStopped) {\r\n return;\r\n }\r\n if (typeof(_self.onCountdownComplete) === \"function\") {\r\n _self.onCountdownComplete();\r\n }\r\n }\r\n };\r\n this.show = function(playlist) {\r\n if (this.type === VideoPlayerSlate.TYPES.NEXTUP) {\r\n var nextIndex = playlist.pointer + 1;\r\n var _playlistItem = playlist.list[nextIndex];\r\n if (!_playlistItem) {\r\n _playlistItem = {};\r\n }\r\n var id = _playlistItem.id || \"\";\r\n var poster = _playlistItem.poster || {};\r\n var headline = _playlistItem.hed || \"\";\r\n var _list = playlist.getItemsInRange(nextIndex + 1, nextIndex + 4);\r\n this.buildUI();\r\n this.runTemplate({\r\n id: id,\r\n title: headline,\r\n poster: poster,\r\n list: _list\r\n });\r\n jQuery(\"div#\" + this.id).show();\r\n this.countdown.start();\r\n return;\r\n }\r\n if (this.type === VideoPlayerSlate.TYPES.END) {\r\n var _playlistItem = playlist.getCurrentItem();\r\n var id = _playlistItem.id || \"\";\r\n var poster = _playlistItem.poster || {};\r\n var _list = playlist.getItemsInRange(playlist.pointer + 1, playlist.pointer + 4);\r\n if (_list.length < 3) {\r\n var endRange = 3 - _list.length;\r\n var _list2 = playlist.getItemsInRange(1, endRange);\r\n _list = _list.concat(_list2);\r\n }\r\n this.runTemplate({\r\n id: id,\r\n poster: poster,\r\n list: _list\r\n });\r\n jQuery(\"div#\" + this.id).show();\r\n return;\r\n }\r\n };\r\n this.hide = function() {\r\n jQuery(\"div#\" + this.id).hide();\r\n };\r\n this.replay = function() {\r\n console.log(\"In replay handler\");\r\n };\r\n this.buildUI = function() {\r\n var target = \"_top\";\r\n var html = \"\";\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += '\"\"';\r\n html += \"
    \";\r\n html += '
    ';\r\n if (this.type == VideoPlayerSlate.TYPES.NEXTUP) {\r\n html += '
    ';\r\n html += '
    ';\r\n html += '
    ';\r\n html += ' Next up:';\r\n html += ' ';\r\n html += \"
    \";\r\n html += \"
    \";\r\n }\r\n html += ' \";\r\n html += '
    Replay
    ';\r\n html += \"
    \";\r\n html += \"
    \";\r\n jQuery(\"#\" + this.id).html(html);\r\n jQuery(\"#\" + this.id + \" > .video-slate-wrapper > .video-slate-content > .replay\").click(function() {\r\n VideoPlayerManager.getPlayer(this.playerId).replay();\r\n _self.countdown.stop();\r\n });\r\n };\r\n this.runTemplate = function(slateData) {\r\n if (slateData === undefined) {\r\n var slateData = {};\r\n }\r\n var title = (slateData.title !== undefined) ? slateData.title : \"\",\r\n poster = (slateData.poster !== undefined) ? slateData.poster : \"\",\r\n list = (slateData.list !== undefined) ? slateData.list : [],\r\n html = \"\";\r\n if (this.type == VideoPlayerSlate.TYPES.NEXTUP) {\r\n jQuery(\"#\" + this.id + \" > .video-slate-wrapper > .video-slate-content > div.video-slate-header .video-title\").text(title);\r\n }\r\n jQuery(\"#\" + this.id + \" > .video-slate-wrapper > .video-bg > img\").replaceWith(poster);\r\n jQuery(\"#\" + this.id + \" > .video-slate-wrapper > .video-slate-content > .video-thumbnails-wrapper a.video-thumbnail\").each(function(index) {\r\n var $elem = jQuery(this);\r\n if (list[index]) {\r\n $elem.find(\"img\").attr(\"src\", (list[index].thumb.src || \"\"));\r\n $elem.find(\".video-thumbnail-caption\").text(list[index].hed);\r\n $elem.attr(\"href\", list[index].id);\r\n if (_self.clickTarget === \"player\") {\r\n $elem.click(function(event) {\r\n event.preventDefault();\r\n VideoPlayerManager.getPlayer(_self.playerId).play(list[index].id, true);\r\n });\r\n }\r\n $elem.show();\r\n } else {\r\n $elem.hide();\r\n }\r\n });\r\n };\r\n _init();\r\n}\r\nVideoPlayerSlate.TYPES = {\r\n NEXTUP: \"nextup\",\r\n PAUSE: \"pause\",\r\n END: \"end\"\r\n};\r\nvar VideoPlayerAds = {\r\n page_target: window,\r\n pagebranding: \"\",\r\n pagesection: \"\",\r\n get_ssid: function(profile, vidId, contentpage, playListItem) {\r\n if (null != contentpage) {\r\n this.page_target = contentpage;\r\n }\r\n var ssid = \"\";\r\n switch (profile) {\r\n case \"generic\":\r\n case \"story\":\r\n case \"interactive\":\r\n ssid = this.get_story_ssid();\r\n break;\r\n case \"wp_blogs\":\r\n ssid = this.get_blogstory_ssid();\r\n break;\r\n case \"gallerySmall\":\r\n case \"galleryLarge\":\r\n case \"galleryExtraLarge\":\r\n case \"videoclip\":\r\n case \"section\":\r\n case \"sectionLarge\":\r\n var _branding = playListItem.branding;\r\n var _category = playListItem.category;\r\n var _source = playListItem.source;\r\n ssid = this.get_bvp_ssid(_branding, _category, _source);\r\n break;\r\n case \"homepage\":\r\n case \"markets\":\r\n ssid = this.get_smallplayer_ssid();\r\n break;\r\n default:\r\n break;\r\n }\r\n return ssid;\r\n },\r\n _get_story_section: function() {\r\n var loc = location.pathname;\r\n var pairs = loc.split(\"/\");\r\n var sectionItems = [];\r\n var section = \"\";\r\n for (var i = 0; i < pairs.length - 2; i++) {\r\n if (isNaN(parseInt(pairs[i], 10)) && pairs[i] != \"\") {\r\n sectionItems.push(pairs[i]);\r\n }\r\n }\r\n for (var i = 0; i < sectionItems.length; i++) {\r\n section += sectionItems[i];\r\n if (i < sectionItems.length - 1) {\r\n section += \"/\";\r\n }\r\n }\r\n if (this.page_target.cnnSource == \"FORT\") {\r\n section = \"fortune_\" + section;\r\n }\r\n return section;\r\n },\r\n _get_page_branding: function() {\r\n if (typeof(this.page_target.cnnBrandingValue) == \"undefined\") {\r\n return \"\";\r\n }\r\n if (this.page_target.cnnBrandingValue == \"\") {\r\n return \"\";\r\n }\r\n return this.page_target.cnnBrandingValue;\r\n },\r\n set_branding: function(branding) {\r\n this.pagebranding = branding;\r\n },\r\n set_section: function(section) {\r\n this.pagesection = section;\r\n },\r\n get_story_ssid: function() {\r\n var branding = (\"\" != this.pagebranding) ? this.pagebranding : this._get_page_branding();\r\n var section = (\"\" != this.pagesection) ? this.pagesection : this._get_story_section();\r\n var branding_ssid = cnnStoryAdSections[branding];\r\n var section_ssid = cnnStoryAdSections[section];\r\n if (branding_ssid != null) {\r\n return branding_ssid;\r\n }\r\n if (section_ssid != null) {\r\n return section_ssid;\r\n }\r\n if (this.page_target.cnnSource == \"FORT\") {\r\n section = \"fortune_technology\";\r\n } else {\r\n section = \"news\";\r\n }\r\n return cnnStoryAdSections[section];\r\n },\r\n get_blogstory_ssid: function() {\r\n var branding = (\"\" != this.pagebranding) ? this.pagebranding : this._get_page_branding();\r\n var section = (\"\" != this.pagesection) ? this.pagesection : this._get_story_section();\r\n var branding_ssid = cnnStoryAdSections[branding];\r\n var section_ssid = cnnStoryAdSections[section];\r\n if (branding_ssid != null) {\r\n return branding_ssid;\r\n }\r\n if (section_ssid != null) {\r\n return section_ssid;\r\n }\r\n if (typeof(cnnStoryAdSections[blogname]) != \"undefined\") {\r\n return cnnStoryAdSections[blogname];\r\n }\r\n return cnnStoryAdSections[section];\r\n },\r\n get_bvp_ssid: function(videoBranding, videoCategory, videoSource) {\r\n var branding = this._get_page_branding();\r\n var branding_ssid = cnnBVPAdSections[branding];\r\n if (branding_ssid != null) {\r\n return branding_ssid;\r\n }\r\n if (typeof(cnnBVPAdSections[videoBranding]) != \"undefined\") {\r\n return cnnBVPAdSections[videoBranding];\r\n }\r\n if (videoSource.toLowerCase() == \"fortune\") {\r\n if (typeof(cnnBVPAdSections[\"fortune_\" + videoCategory]) != \"undefined\") {\r\n return cnnBVPAdSections[\"fortune_\" + videoCategory];\r\n }\r\n return cnnBVPAdSections[\"fortune_technology\"];\r\n }\r\n if (typeof(cnnBVPAdSections[videoCategory]) != \"undefined\") {\r\n return cnnBVPAdSections[videoCategory];\r\n }\r\n return cnnBVPAdSections[\"news\"];\r\n },\r\n get_smallplayer_ssid: function() {\r\n var ssid = \"cnnmoney.com_homepage\";\r\n var loc = location.pathname;\r\n if (loc == \"/smallbusiness/\" || loc.match(\"/smallbusiness/index.html\")) {\r\n ssid = \"cnnmoney.com_smallbusiness_sectionhomepage\";\r\n } else {\r\n if (loc == \"/magazines/fortune/\" || loc.match(\"/magazines/fortune/index.html\")) {\r\n ssid = \"fortune.com_homepage\";\r\n } else {\r\n if (loc.match(\"data/premarket\")) {\r\n ssid = \"cnnmoney.com_premarkets\";\r\n } else {\r\n if (loc.match(\"data/afterhours\")) {\r\n ssid = \"cnnmoney.com_afterhours\";\r\n }\r\n }\r\n }\r\n }\r\n return ssid;\r\n }\r\n};\r\n","var ua = navigator.userAgent.toLowerCase();\nvar isAndroid = ua.indexOf('android') > -1;\nif(isAndroid) {\n $('html').addClass('android')\n}\n\nvar vidConfig = [];\n$vidviewport = jQuery('#cnnVPscreen');\nvideoplayer_width = $vidviewport.width();\nvideoplayer_height = videoplayer_width * (9/16);\n\nvar $window = $(window);\nvar $windowWidth = $(window).width();\n\nfunction fadeInVideoThumbs(){\n $('.js-video-title-wrapper').each(function(index) {\n $(this).delay(250*index).animate({opacity:'1'}, 150);\n });\n}\n\nfunction videoSlide(){\n setTimeout(function(){\n $('.js-video-slide').animate({height:'56.25vw'},350);\n }, 1000);\n}\n\nvar androidVideo = $('#js-sticky-video').offset().top;\nvar heroHeight = $('.hero').outerHeight();\n\n$(document).ready(function() {\n try {\n CNNM.Social.init();\n }\n catch(e){}\n\n $('.js-video-title-wrapper').directionalHover();\n\n vidConfig.push({\n \"playerprofile\" : \"noAds\",\n \"playerid\" : \"staticVideoPlayer\",\n \"divid\" : \"cnnVidplayer\",\n \"autoplay\": true,\n \"has_poster\" : false,\n \"auto_playlist\" : false,\n \"disableNextUpSlate\" : true,\n \"disableEndSlate\" : true,\n \"width\": videoplayer_width,\n \"height\": videoplayer_height,\n \"mode\" : VideoPlaylist.MODES.REPEAT,\n \"callouts\" : {\n \"onContentBegin\" : function (id, contentId) {\n specials_vidControls.findandhighlightbtn(contentId);\n }\n },\n videoArray:[{\n \"id\" : \"video/pf/2017/01/03/my-first-job-tboone-pickens.cnnmoney\",\n \"hed\" : \"How the Great Depression made T-Boone Pickens a financial guru\",\n \"dek\" : \"Chairman of BP Capital, T-Boone Pickens, says ever since his first job delivering newspapers during the Great Depression, he's never been without money in his pocket.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161109163650-my-first-job-pickens-image-780x439.jpg\"\n },{\n \"id\" : \"video/media/2017/01/03/my-first-job-dolly-parton.cnnmoney\",\n \"hed\" : \"The unexpected start of Country Music legend Dolly Parton\",\n \"dek\" : \"Country Music legend Dolly Patron talks about how her first job at a sign store was really just a great time for her to write music and call agents.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161103151526-my-first-job-dolly-parton-780x439.jpg\"\n },{\n \"id\" : \"video/pf/2017/01/03/my-first-job-dan-rather.cnnmoney\",\n \"hed\" : \"Perhaps this is why Dan Rather has a healthy fear of dogs\",\n \"dek\" : \"Before delivering the Nation the Evening News, Anchorman Dan Rather delivered newspapers.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161117103802-my-first-job-dan-rather-image-780x439.jpg\"\n },{\n \"id\" : \"video/media/2017/01/03/my-first-job-mickey-drexler.cnnmoney\",\n \"hed\" : \"Mikey Drexler's first job predates papertowels\",\n \"dek\" : \"J.Crew Group CEO Mickey Drexler talks about how his first job at a laundering service taught him discipline and gave him the work ethic he still has today.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161103150844-my-first-job-mickey-drexler-780x439.jpg\"\n },{\n \"id\" : \"video/pf/2017/01/03/my-first-job-sean-combs.cnnmoney\",\n \"hed\" : \"Diddy started his empire at the age of 12\",\n \"dek\" : \"Sean Combs, better known as P Diddy, Puff Daddy, or Diddy talks about how important his first job was so that he could not only provide for himself, but also his family.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161109153420-my-first-job-sean-combs-780x439.jpg\"\n },{\n \"id\" : \"video/media/2017/01/03/my-first-job-russell-simmons.cnnmoney\",\n \"hed\" : \"Here's how Russell Simmons got fired from his first job\",\n \"dek\" : \"Hip Hop music maker Russell Simmons admits that he was always getting in trouble during his first job at Orange Julius.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161103151745-my-first-job-russell-simmons-780x439.jpg\"\n },{\n \"id\" : \"video/pf/2017/01/03/my-first-job-sheila-johnson.cnnmoney\",\n \"hed\" : \"Before co-founding BET she took on teaching\",\n \"dek\" : \"Sheila Johnson describes the first act of her career, a non-paying job as a violin teacher.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161117103309-my-first-job-sheila-johnson-image-780x439.jpg\"\n },{\n \"id\" : \"video/media/2017/01/03/my-first-job-sean-rad-tinder.cnnmoney\",\n \"hed\" : \"This is how Tinder got it's real start\",\n \"dek\" : \"From mail delivery boy to Social Media superstar, Tinder Founder and CEO Sean Rad tells us about his first job as an intern at an entertainment company.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161103104910-my-first-job-sean-rad-780x439.jpg\"\n },{\n \"id\" : \"video/media/2017/01/03/my-first-job-susan-wojcicki.cnnmoney\",\n \"hed\" : \"She runs Youtube, but learned it all from the garbage business\",\n \"dek\" : \"Before she became CEO of Youtube, Susan Wojcicki tried a variety of jobs as a temp filling in at various companies.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161103151234-my-first-job-susan-wojcicki-youtube-780x439.jpg\"\n },{\n \"id\" : \"video/pf/2017/01/03/my-first-job-ursula-burns.cnnmoney\",\n \"hed\" : \"Adventures in Babysitting, how a former Xerox CEO got started\",\n \"dek\" : \"Running a billion dollar company might be tough, but Ursula Burns recounts the difficulty of her first job, being a babysitter for two young kids.\",\n \"img\" : \"https://i2.cdn.turner.com/money/dam/assets/161117102154-my-first-job-urusla-burns-image-780x439.jpg\"\n }]\n });\n\n // init video player\n specials_vidControls.init({\n UI_btns_selector : '.js-videoplayer_ui nav',\n playerid : 'staticVideoPlayer'\n });\n});\n\n\n$window.load(function() {\n $('body').addClass('loaded');\n // videoSlide();\n fadeInVideoThumbs();\n});\n\n\n\n$window.scroll(function() {\n var jsHeroImg = document.getElementById('jsHeroImg');\n var jsWindow = $(window).scrollTop();\n var jsWindow60 = $(window).scrollTop() + 60;\n var jsHeroImgOffset = jsHeroImg.offsetHeight + 70;\n \n\n //console.log(androidVideo +' androidVideo');\n\n // console.log(jsHeroImg.offsetHeight);\n console.log(jsWindow60);\n\n if ( jsWindow >= jsHeroImgOffset){\n // console.log('HELLO');\n $('#jsLogoTitle').addClass('active');\n }\n else if( jsWindow <= jsHeroImgOffset ){\n $('#jsLogoTitle').removeClass('active');\n }\n\n if (jsWindow60 >= androidVideo) {\n $('html').addClass('html-sticky-video');\n }\n else if ( jsWindow <= heroHeight ) {\n $('html').removeClass('html-sticky-video');\n } \n\n \n});","//checks for our iOS, Android + mWeb apps\nvar isMobile = location.search;\n\nif (isMobile == '?appType=ios'){\n\tdocument.getElementsByTagName('html').className = 'is-mobile is-ios-app';\n\tconsole.log('is iOS app');\n}\nelse if (isMobile == '?appType=android'){\n\tdocument.getElementsByTagName('html').className = 'is-mobile is-android-app';\n\tconsole.log('is Android app');\n}\nelse if (isMobile == '?appType=mobileweb'){\n\tdocument.getElementsByTagName('html').className = 'is-mobile is-mweb-app';\n\tconsole.log('is mobile web app');\n}\nelse {\n\tconsole.log('not an app');\n}","(function ($) {\n\n $.fn.directionalHover = function(options) {\n // Extend default plugin options\n var opts = $.extend({}, $.fn.directionalHover.defaults, options);\n\n // Create bit flags\n var FLAG_T = 1, // top\n FLAG_R = 2, // right\n FLAG_B = 4, // bottom\n FLAG_L = 8; // left\n\n // Create bit masks\n var tlMask = FLAG_T | FLAG_L,\n trMask = FLAG_T | FLAG_R,\n blMask = FLAG_B | FLAG_L,\n brMask = FLAG_B | FLAG_R;\n\n function slideOverlay(overlay, direction, px, py, ew, eh, ex, ey) {\n var cornerFlags = 0; // top|right|bottom|left\n\n if (py - ey <= eh / 2) cornerFlags ^= FLAG_T;\n if (px - ex >= ew / 2) cornerFlags ^= FLAG_R;\n if (py - ey > eh / 2) cornerFlags ^= FLAG_B;\n if (px - ex < ew / 2) cornerFlags ^= FLAG_L;\n\n findSide(cornerFlags, overlay, direction, px-ex, py-ey, ew/2, eh/2);\n }\n\n function findSide(flags, overlay, direction, x, y, w, h) {\n if (testMask(flags, tlMask)) {\n testTopLeftToBottomRight(x, y, w, h) ? setOverlayPosition(overlay, direction, 0, -w*2) : setOverlayPosition(overlay, direction, -h*2, 0);\n }\n else if (testMask(flags, trMask)) {\n testBottomRightToTopLeft(x, y, w, h) ? setOverlayPosition(overlay, direction, -h*2, 0) : setOverlayPosition(overlay, direction, 0, w*2);\n }\n else if (testMask(flags, blMask)) {\n testBottomRightToTopLeft(x, y, w, h) ? setOverlayPosition(overlay, direction, 0, -w*2) : setOverlayPosition(overlay, direction, h*2, 0);\n }\n else if (testMask(flags, brMask)) {\n testTopLeftToBottomRight(x, y, w, h) ? setOverlayPosition(overlay, direction, h*2, 0) : setOverlayPosition(overlay, direction, 0, w*2);\n }\n }\n\n function testMask(flags, mask) {\n return (flags & mask) === mask;\n }\n\n function testTopLeftToBottomRight(x, y, w, h) {\n return (h * x - w * y) < 0;\n }\n\n function testBottomRightToTopLeft(x, y, w, h) {\n return (w * (y-h) + h * x - w * h) < 0;\n }\n\n function setOverlayPosition(overlay, direction, top, left) {\n if (direction === 'in') {\n overlay.animate({\n top: top,\n left: left\n }, 0, function() {\n overlay.stop().animate({\n top: 0,\n left: 0\n }, opts.speed, opts.easing);\n });\n }\n else if (direction === 'out') {\n overlay.animate({\n top: 0,\n left: 0\n }, 0, function() {\n overlay.stop().animate({\n top: top,\n left: left\n }, opts.speed, opts.easing);\n });\n }\n }\n\n this.css({\n position: 'relative',\n overflow: 'hidden'\n });\n\n this.find('.' + opts.overlay).css({\n position: 'absolute',\n top: '-100%'\n });\n\n return this.each(function() {\n var container = $(this);\n\n container.hover(function(e) {\n slideOverlay(\n container.find('.' + opts.overlay),\n 'in',\n e.pageX,\n e.pageY,\n container.width(),\n container.height(),\n Math.floor(container.offset().left),\n container.offset().top\n );\n }, function(e) {\n slideOverlay(\n container.find('.' + opts.overlay),\n 'out',\n e.pageX,\n e.pageY,\n container.width(),\n container.height(),\n Math.floor(container.offset().left),\n container.offset().top\n );\n });\n });\n };\n\n // Plugin default options\n $.fn.directionalHover.defaults = {\n overlay: \"dh-overlay\",\n easing: \"swing\",\n speed: 400\n };\n\n}(jQuery));","/* Load CVP before loading these controls */\r\nvar specials_vidControls = {\r\n\t$controls : jQuery('.js-videoplayer_ui nav'),\r\n\tvideoplayer : null,\r\n\t$videoplayer_viewer : jQuery('#cnnVPscreen'),\r\n\tvidPlayerid : 'staticVideoPlayer',\r\n\tvideoisonscreen : true,\r\n\t\r\n\tisonscreen : function (elem) {\r\n var win = $(window);\r\n\r\n var viewport = {\r\n top: win.scrollTop(),\r\n left: win.scrollLeft()\r\n };\r\n viewport.right = viewport.left + win.width();\r\n viewport.bottom = viewport.top + win.height();\r\n\r\n var bounds = elem.offset();\r\n bounds.right = bounds.left + elem.outerWidth();\r\n bounds.bottom = bounds.top + elem.outerHeight();\r\n\r\n return (!(viewport.right < bounds.left || viewport.left > bounds.right || viewport.bottom < (bounds.top+96) || viewport.top > bounds.bottom));\t\t\r\n\t},\r\n\r\n\tsetonblur : function() {\r\n\t\tjQuery(window).scroll(function(){\r\n\t\t\tif(!specials_vidControls.isonscreen(specials_vidControls.$videoplayer_viewer)) {\r\n\t\t\t\tspecials_vidControls.videoplayer.pause();\t\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\r\n\thighlightbtn : function($button) {\r\n\t\tthis.$controls.removeClass('active');\r\n\t\t$button.className += ' active';\r\n\t\treturn;\r\n\t},\r\n\t\r\n\tfindandhighlightbtn : function(vid) {\r\n\t\tvar buttons = this.$controls.parent().find(\"[data-vid='\"+vid+\"']\");\r\n\t\tfor (i = 0 ; i < buttons.length; i++ ) {\r\n\t\t\tthis.highlightbtn(buttons[0]);\r\n\t\t}\r\n\t\t// if ( $('#js-video1').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('T. Boone Pickens');\r\n\t\t// \t$('.js-company').text('Chairman, BP Captial');\r\n\t\t// \t$('.js-video-hed').animate({opacity: 1}, 350);\r\n\t\t// }\r\n\t\t// else if ( $('#js-video2').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Dolly Parton');\r\n\t\t// \t$('.js-company').text('Singer-songwriter');\r\n\t\t// }\r\n\t\t// else if ( $('#js-video3').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Dan Rather');\r\n\t\t// \t$('.js-company').text('Journalist');\r\n\t\t// }\r\n\t\t// else if ( $('#js-video4').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Mickey Drexler');\r\n\t\t// \t$('.js-company').text('CEO, J.Crew');\r\n\t\t// }\r\n\t\t// else if ( $('#js-video5').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Sean Combs');\r\n\t\t// \t$('.js-company').text('Chairman, Combs Enterprises');\r\n\t\t// }\r\n\t\t// else if ( $('#js-video6').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Russel Simmons');\r\n\t\t// \t$('.js-company').text('Chairman & CEO, Rush Communications');\r\n\t\t// }\r\n\t\t// else if ( $('#js-video7').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Shelia Johnson');\r\n\t\t// \t$('.js-company').text('CEO, Salamander Hotels & Resorts');\r\n\t\t// }\r\n\t\t// else if ( $('#js-video8').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Sean Rad');\r\n\t\t// \t$('.js-company').text('CEO, Tinder');\r\n\t\t// }\r\n\t\t// else if ( $('#js-video9').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Susan Wojcicki');\r\n\t\t// \t$('.js-company').text('CEO, YouTube');\r\n\t\t// }\r\n\t\t// else if ( $('#js-video10').hasClass('active') ){\r\n\t\t// \t$('.js-name').text('Ursula Burns');\r\n\t\t// \t$('.js-company').text('Chairman & CEO, Xerox');\r\n\t\t// }\r\n\t\treturn;\r\n\t},\r\n\r\n\tplayVideoURLParam: function () {\r\n\t\tvar selectedvid = getQSParam('playvid'); /* from main.js */\r\n\t\tselectedvid = parseInt(selectedvid)-1;\r\n\t\tif(selectedvid >=0 && selectedvid < this.videoplayer.play_list.getNumItems()) {\r\n\t\t\t/** hack: this.$controls[selectedvid].click(); has a bug - race condition? **/\r\n\t\t\tif(selectedvid-1 >= 0) {\r\n\t\t\t\tvar vid = this.$controls[selectedvid-1].dataset['vid'];\r\n\t\t\t\tspecials_vidControls.videoplayer.play(vid);\t\t\t\r\n\t\t\t}\r\n\t\t\tspecials_vidControls.highlightbtn(this.$controls[selectedvid]);\r\n\t\t}\r\n\r\n\t},\r\n\r\n\tinit : function(options) {\r\n\t\toptions = options || {};\r\n\r\n\t\tif(typeof options.UI_btns_selector !== 'undefined') {\r\n\t\t\tthis.$controls = jQuery(options.UI_btns_selector);\r\n\t\t}\r\n\t\tif(typeof options.viewerContainer !== 'undefined') {\r\n\t\t\tthis.$videoplayer_viewer = jQuery(options.viewerContainer);\r\n\t\t}\r\n\t\tif(typeof options.playerid !== 'undefined') {\r\n\t\t\tthis.vidPlayerid = options.playerid;\r\n\t\t}\r\n\r\n\t\t/* load cvp */\r\n\t\tif(typeof VideoPlayerManager.getPlayer(this.vidPlayerid) == \"undefined\") {\r\n\t\t\tVideoPlayerManager.playVideos(this.vidPlayerid);\r\n\t\t}\r\n\r\n\t\tthis.videoplayer = VideoPlayerManager.getPlayer(this.vidPlayerid);\r\n\r\n\t\t/* Set buttons */\r\n\t\tthis.$controls.bind('click', function(e) {\t\t\t\t\t\t\r\n\t\t\tvar vid = this.dataset['vid'];\r\n\t\t\tspecials_vidControls.videoplayer.play(vid);\r\n\t\t\tspecials_vidControls.highlightbtn(this);\r\n\t\t\t//window.scrollTo(0,0);\r\n\t\t});\r\n\r\n\t\t/* Check if URL specifies target video to autoplay */\r\n\t\tthis.playVideoURLParam();\r\n\r\n\r\n\t\t/* video player resizing for responsiveness */\r\n\t\twindow.onresize = function(event) {\r\n\t\t\tvar player_w = 1024;\r\n\t\t\tif (document.body && document.body.offsetWidth) \r\n\t\t\t{\r\n\t\t\t\tplayer_w = document.body.offsetWidth;\r\n\t\t\t}\t\t\r\n\t\t\tif (window.innerWidth && window.innerHeight) \r\n\t\t\t{\r\n\t\t\t\tplayer_w = window.innerWidth;\r\n\t\t\t}\r\n\t\t\tif(specials_vidControls.$videoplayer_viewer.length != 0){\r\n\t\t\t\tplayer_w = specials_vidControls.$videoplayer_viewer.width();\t\t\t\t\r\n\t\t\t}\r\n\r\n\t\t\tplayer_h = player_w * (9/16);\r\n\t\t\tspecials_vidControls.videoplayer.resizeTo(player_w, player_h);\t\r\n\t\t\tspecials_vidControls.$videoplayer_viewer.height('auto');\r\n\t\t};\r\n\r\n\t\t/* Set viewport on blur actions */\r\n\t\t//comment this in for pause on scroll\r\n\t\t//this.setonblur(); \r\n\t\t\r\n\t}\r\n}"],"sourceRoot":"/source/"}