(function($) {
	var PAPromoLoader = {
		ad_badges: {
			'new': { 'class': 'new', 'title': 'New!' },
            'patv': { 'class': 'patv', 'title': 'New PATV!' },
            'merch': { 'class': 'merch', 'title': 'New Merch!' }
		},
		populatePromos: function(data) {
			for(var i = 0; i < data.length; i++) {
				var promoData = data[i];
				var promoType = promoData['slot'].split("_")[0];
				if(promoType == 'ad') {
					PAPromoLoader.createAd(promoData);
				} else if(promoType == 'legacypromo') {
					//$("#"+promoData['slot']).append(PAPromoLoader.createLegacyAd(promoData));
				}
			}
		},
		createAd: function(data) {
			var adSlot = $("#"+data['slot']);
			var cachebuster = String(Math.random()).substring(2);
			var badge = PAPromoLoader.ad_badges[data['category']];
			var url = "http://pa-promos.appspot.com/forward?promo="+data['key']+"&url="+data['link_url']+"&cb="+cachebuster;
			var icon = $("<p></p>").addClass("icon").append(
				$("<a></a>").addClass(badge['class']).attr("title", badge['title']).attr("href", url).text(badge['title'])
			);
			var cta = $("<a></a>").attr("title", data['alt']).attr("href", url).append(
                $("<img />").attr("alt", data['alt']).attr("src", data['image_url'])
            );
            var headline = $("<h4></h4>").append(
                $("<a></a>").attr("title", data['alt']).attr("href", url).html(data['title'])
            );
            adSlot.append(icon).append(cta).append(headline);
		}
	};
	
	$(function() {
		var slotNames = [];
		$("#promos .promo").each(function() {
			slotNames.push($(this).attr("id"));
		});
		if (slotNames.length > 0) {
            var slotParam = slotNames.join(",");
            var remoteUrl = ('https:' == document.location.protocol ? 'https://' : 'http://') +
                            "pa-promos.appspot.com/get";
            $.ajax({
                dataType: 'jsonp',
                data: { slots: slotParam },
                url: remoteUrl,
                success: PAPromoLoader.populatePromos
            });
        }
	});
})(jQuery);

