ad_playlist = {

	header_container: '#continuousContainer',
	header_logo: '#gallery_hdr',
	default_color: '#000000',
	default_repeat: 'repeat-x',

	header: function(bg_image, bg_color, bg_repeat) {
		var repeat = (bg_repeat != undefined) ? bg_repeat : this.default_repeat;
		var color = (bg_color != undefined) ? bg_color : this.default_color;

		$(this.header_logo).hide();
		$(this.header_container).css({ 'background': color + ' url(' + bg_image + ') ' + repeat });
	},

	logo: function(image_src, link_url) {
		var header_logo_link = $(this.header_logo);
		
		header_logo_link.addClass('ad_logo');

		if(link_url != undefined && link_url != '%%CLICKURL%%') {
			var link = link_url;
			header_logo_link.target = '_blank';
		} else {
			var link = 'javascript:void(0);';
		}

		header_logo_link.href = link;

		header_logo_link.find('img:first').attr('src', image_src).attr('alt', '');

		$(this.header_logo).show();
	}

};

ad_navtab = {

	/*	SAMPLE CODE

		<script type="text/javascript">
		ad_navtab.load('/clients/nbc/img-nbc-community-NAVTAB.jpg', '%%CLICKURL%%');
		</script>
		<img src="" alt="" />
	*/

	navtab_container: '#nav-top',
	navtab_class: 'ad-sales-tab',

	load: function(image, url) {
		var tabdiv = $('<div>').addClass(this.navtab_class);
		var tablink = $('<a>').attr('href', url);
		var navtab = $('<img>').attr('src', image).attr('alt', '');
		
		tablink.append(navtab);
		tabdiv.append(tablink);
		$(this.navtab_container)
			.find('.' + this.navtab_class)
				.remove()
			.end()
			.append(tabdiv);
	}

};

ad_skin = {

	ad_container: '#skin-body',
	clickable: Array('skin-body', 'skin', 'ad-banner'),
	loaded: false,
	color_threshold: 10066329,	// #999999

	load: function(ad_image, redirect_url, color, top_color) {
		if(typeof(this.onclick) == 'function') {
			this.stopObserver();
		}
			
		this.loaded = true;
		$('#banner_ad_header').hide();
		
		var styles = {
			'background-color': color,
			'background-image': 'url('+ad_image+')',
			'background-repeat': 'no-repeat',
			'background-position': 'center top'
		};
		
		$(this.ad_container)
			.css(styles)
			.unbind('click');
		
		this.switch_footer_palette(color);
		
		$('body').addClass('has-skin');
		
		$('#top').css('background-color', top_color);
		
		if(redirect_url!=''){
			
			$(this.ad_container).bind('click', ad_skin, function(e) {
				if(e.target)
					targ = e.target;
				else if(e.srcElement)
					targ = e.srcElement;
				
				if(jQuery.inArray($(targ).attr('id'), ad_skin.clickable) >= 0) {
					window.open(redirect_url);
				}
			});

		} else {
			$(this.ad_container).css({ 'cursor' : 'default' });
		}
	},

	body: function(body_image, color, repeat) {
		this.switch_footer_palette(color);
		
		if(body_image != '') {
			$('body').css({ 'background' : color+' url('+body_image+') center top '+(repeat ? repeat : 'repeat-x') });
		} else {
			$('body').css({ 'background' : color });
		}
	},

	reset: function() {
		try {
			
			if(typeof(this.onclick) == 'function') {
				this.stopObserver();
			}

			var styled = [$('body'), $('#top'), $(this.ad_container)];
			jQuery.each(styled, function() { this.removeAttr('style'); });

			$('body').removeClass('has-skin');

		} catch(err) { }
	},

	stopObserver: function() {
		$(this.ad_container).unbind('click', this.onclick);
	},
	
	switch_footer_palette: function(color) {
		var bg_dec = parseInt(color.replace('#', ''), 16);
		if(bg_dec >= this.color_threshold) {
			$('body').bind('ch.loaded', function() { $('#footer_wrap').addClass('dark'); });
		}
	},
	
	color_change: function(colors) {
		
		$.getScript('/js/jquery.ui.animate.js', function(){
			
			var index = 0;
			var colors_count = colors.length;
			
			setInterval(function(){

				if(index >= colors_count)
					index = 0;

				$(ad_skin.ad_container).animate({ backgroundColor: colors[index] }, 'slow', 'linear');
				ad_skin.switch_footer_palette(colors[index]);
				
				index++;
				
			}, 5000);
		});
	
	}
};


ads = {	
	flash_loaded: false,
	
	set_flash_loaded: function(bool) {
		self.flash_loaded = bool;
		
		if(bool) {
			$(document).trigger('ads.flash_loaded').unbind('ads.flash_loaded');
		}
	},
	
	set_flash_vars: function(vars) {
		callback = function() {
			for(key in vars) {
				$('#moogaloop').get(0).flash_variable(key, vars[key]);
			}
		};
		
		if(self.flash_loaded) {
			callback();
		} else {
			$(document).bind('ads.flash_loaded', callback);
		}
	},
	
	reload: function() {
		function extractUrlParams(url) {
			var query = url.substr(url.indexOf('?') + 1);
			var b = query.split('&');
			var params ={};
			$.each(b, function(x,y) {
				var key = y.split('=',1)[0];
				if(key != y) {
					var value = y.replace(key + '=', '');
					var temp = [key,value];
					// var temp = y.split('=');
					params[temp[0]] = temp[1];
				}
			});

			return params;
		}
		
		var ord = parseInt(Math.random()*99999999);
		
		ad_skin.reset();
		$('#banner_ad_header').show(); // reshow the leaderboard
		
		var ad_query = $.evalJSON($.toJSON(ch.ad_query));
		
		$('.adspot').each(function() {
			var $self = $(this);
			var params = extractUrlParams(unescape($self.attr('src')));
			params = $.evalJSON(params['params']);
			
			var query = ad_query;
			query['sz'] = params['sz'];
			query['tile'] = params['tile'];
			
			var url = '/etc/load_ad.php?buster=' + parseInt(Math.random()*99999999) + '&id=' + $self.attr('id') + '&ord=' + ord + '&params=' + escape($.toJSON(query));
			$self.attr('src', url);
		});
	}
};


var timer;
function interval_reload_ads(interval) {
	// Install timer
	timer = setInterval(function() { ads.reload(); }, parseInt(interval)*1000);
}

$(document).ready(function() {
	if(typeof(ch.ad_interval) != 'undefined' && ch.ad_interval != -1)
		interval_reload_ads(ch.ad_interval);
});

