if(typeof rc_segments_sent === 'undefined'){ rc_segments_sent = false; } if(typeof rc_segmented_widgets === 'undefined'){ rc_segmented_widgets = new Array(); } if(typeof rc_segmented_creatives === 'undefined'){ rc_segmented_creatives = new Array(); } if(typeof rc_loaded_widgets === 'undefined'){ rc_loaded_widgets = new Array(); } var segmenter = function() { if (rc_segments_sent == true) { return; } var widget_ids = new Array(); var elements = document.getElementsByClassName('rc-wc'); var i; for(i = elements.length - 1; i >= 0; --i) { widget_ids.push(elements[i].id); } widget_ids.sort(); rc_loaded_widgets.sort(); // Not all widgets are loaded if (!(widget_ids.length == rc_loaded_widgets.length) && widget_ids.every(function(element, index) { return element === rc_loaded_widgets[index]; })){ return; } rc_segments_sent = true; var pixels = new Array(); elements = document.getElementsByClassName('rc-seg-pix'); var rc_pixel_hash = {}; for(i = elements.length - 1; i >= 0; --i) { rc_pixel_hash[elements[i].id] = true; } elements = document.getElementsByTagName('script'); var urlparts; var urlpart; var src; for(i = elements.length - 1; i >= 0; --i) { src = elements[i].getAttribute('src'); urlparts = (src ? src.split(/[&?]/i) : []); if (urlparts.length > 1) { for (var j = urlparts.length - 1; j > -1; --j) { urlpart = urlparts[j].split('='); if (urlpart.length > 1) { if ('data-rc' == urlpart[0] && 'rc-seg-pix' == urlpart[1]) { rc_pixel_hash[elements[i].id] = true; break; } } } } } for(var key in rc_pixel_hash) { if (key) { pixels.push(key); } } // Nothing to send if(rc_segmented_widgets.length <= 0 && pixels.length <= 0 && rc_segmented_widgets.length <= 0) { return; } loadJSONP('//trends.revcontent.com/seg.php?callback=loaded&widgets=' + rc_segmented_widgets.join() + '&pixels=' + pixels.join() + '&creatives=' + rc_segmented_creatives.join()) } var loaded = function ( data ) { rc_segments_sent = true; } var loadJSONP = function ( url ) { var ref = window.document.getElementsByTagName( 'script' )[ 0 ]; var script = window.document.createElement( 'script' ); script.src = url + (url.indexOf( '?' ) + 1 ? '&' : '?'); ref.parentNode.insertBefore( script, ref ); script.onload = function () { this.remove(); }; }; document.addEventListener("DOMContentLoaded", function(event) { segmenter(); });