var _HUGE_BASE_URL = 'http://core.huge.doublerecall.com/'; var _HUGE_MIXPANEL_TOKEN = 'f30bdaf49b7c0b0637dfc1d45830548d'; var mpq = []; mpq.push(["init", _HUGE_MIXPANEL_TOKEN]); (function(){var b,a,e,d,c;b=document.createElement("script");b.type="text/javascript";b.async=true;b.src=(document.location.protocol==="https:"?"https:":"http:")+"//api.mixpanel.com/site_media/js/api/mixpanel.js";a=document.getElementsByTagName("script")[0];a.parentNode.insertBefore(b,a);e=function(f){return function(){mpq.push([f].concat(Array.prototype.slice.call(arguments,0)))}};d=["init","track","track_links","track_forms","register","register_once","identify","name_tag","set_config"];for(c=0;c < d.length;c++){mpq[d[c]]=e(d[c])}})(); var _HUGE; if ( _HUGE == undefined ) _HUGE = {}; window._HUGE = _HUGE; // Initialize global HUGE object with helper functions. if ( !_HUGE.initialized ) { _HUGE.get_id = function(id) { return document.getElementById(id); }; _HUGE.get_class = function(klass) { return_array = new Array(); var els = document.getElementsByTagName("*"); var pattern = new RegExp("(^|\\s)"+klass+"(\\s|$)"); for ( i = 0; i < els.length; i++ ) { if ( pattern.test(els[i].className) ) { return_array.push(els[i]); } } return return_array; }; // _HUGE.add_load_event = function(func){var oldonload = window.onload;if(typeof window.onload != 'function'){window.onload=func;}else{window.onload=function(){if(oldonload){oldonload();}func();}}}; _HUGE.get_head = function() { return document.getElementsByTagName("HEAD")[0]; } _HUGE.get_body = function() { return document.getElementsByTagName("BODY")[0]; } _HUGE.has_class = function(element, className) { var elementClassName = element.className; return (elementClassName.length > 0 && (elementClassName == className || new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName))); }; _HUGE.add_class = function(element, className) { if (!_HUGE.has_class(element, className)) element.className += (element.className ? ' ' : '') + className; return element; }; _HUGE.remove_class = function(element, className) { var newClass = _HUGE.strip(element.className.replace(new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ')); element.className = newClass; return element; }; _HUGE.strip = function(string) { return string.replace(/^\s+/, '').replace(/\s+$/, ''); }; _HUGE.get = function(url, callback) { var script = document.createElement("script"); script.type = "text/javascript"; script.src = url // Setup callback if we have one. if ( callback ) script.onload = callback // Put da script in da head, YO! _HUGE.get_head().appendChild(script) } _HUGE.ads = []; _HUGE.flash_objects = []; _HUGE.initialized = true; } // The ad object constructor. This will be the main workhorse. _HUGE.ad = function(options) { if(_HUGE.ads.length > 0) return; if ( !options ) this.options = {}; else this.options = options; if ( !this.options.core ) this.options.core = _HUGE_BASE_URL; if ( !this.options.shortcode ) this.options.shortcode = 'target'; else this.options.shortcode = this.options.shortcode + '/jsonp'; // Fetch data from remote server. this.get(); _HUGE.ads.push(this); } _HUGE.ad.prototype = { get: function() { // Create a random-named callback function handler. var callback_function_name = "callback_"+ Math.round(Math.random()*999999); var this_obj = this; _HUGE[callback_function_name] = function(data) { // create _HUGE function that will be called from JSONP script with data this_obj.render(data); // Callback will call render upon execution. } var url = [ this.options.core, this.options.shortcode, "?referer="+ escape(document.referrer), "&callee="+ escape(window.location.href), "&callback="+ escape("_HUGE."+ callback_function_name) ].join(""); _HUGE.get(url); }, render: function(data) { if ( !data ) return false this.hide_all_flash_objects(); var css = document.createElement("link"); css.type = "text/css"; css.rel = "stylesheet"; css.href = _HUGE_BASE_URL + data.shortcode + '/css'; _HUGE.get_head().appendChild(css); _HUGE.get_body().innerHTML += data.html; // Setup overlay height on document load finish. /* var this_obj = this; _HUGE.add_load_event(function() { this_obj.scroll_top = document.documentElement.scrollTop || document.body.scrollTop; this_obj.scroll_height = document.documentElement.scrollHeight; this_obj.client_height = window.innerHeight || document.documentElement.clientHeight; _HUGE.get_id('DR_HUGE_screen').style.height = this.scroll_height + "px"; // Expand our background overlay to cover the entire height. }) */ this.show(); }, show: function() { _HUGE.get_id('DR_HUGE_overlay').style.display = 'block'; }, hide: function() { _HUGE.get_id('DR_HUGE_overlay').style.display = 'none'; this.show_all_flash_objects(); }, hide_all_flash_objects: function() { object_elements = document.getElementsByTagName("OBJECT"); for(key in object_elements) { if(object_elements[key].tagName == 'OBJECT') { object_elements[key].style.display = 'none'; _HUGE.flash_objects.push(object_elements[key]); } } }, show_all_flash_objects: function() { /* while(_HUGE.flash_objects.length > 0) { object_element = _HUGE.flash_objects.pop(); console.log(object_element); console.log(object_element.style.display); object_element.style.display = 'block'; console.log(object_element.style.display); } */ object_elements = document.getElementsByTagName("OBJECT"); for(key in object_elements) { if(object_elements[key].tagName == 'OBJECT') { object_elements[key].style.display = 'block'; } } }, count_click: function(shortcode, kind, item_number) { mpq.track("click", { 'shortcode' : shortcode , 'shortcode_item' : shortcode + "_" + item_number , 'shortcode_kind' : shortcode + "_" + kind }); document.createElement("img").src = _HUGE_BASE_URL + shortcode + "/count/clicks/clicks_kind_" + kind + "/clicks_item_" + item_number; }, count_view: function(shortcode) { mpq.track("view", { 'shortcode' : shortcode }); document.createElement("img").src = _HUGE_BASE_URL + shortcode + "/count/views"; }, }