$(document).ready(function() {
	var machineLookup = new Array();
	var firstRender = true;
	
	var promotedListings = $('#promoted_listings');
	
	for (var m = 0; m < PROMOTED_LISTINGS.length; ++m) {
		var cur = PROMOTED_LISTINGS[m];
		promotedListings.append('<div class="mf-container" id="manf_listing_' + cur['id'] + '"></div>');
	}
	
	var self = this;
	
	this.renderManufacturer= function(id, data, machineIndex) {
		var manf = $("#manf_listing_" + id),
			listing,
			machine = data['machines'][machineIndex],
			nodeHtml;


		if (data['machines'].length == 1 && !firstRender) {
			return;
		}
		
		if (firstRender) {
			manf.append('<div class="logo"></div><div class="listing"></div>');
			var html = '';
			
			if (data['url']) {
				html = '<a target="_blank" href="' + data['url'] + '">';
			}
			
			if (data['has_logo']) {
				html += '<img src="/image/manufacturer-logo/' + data['id'] + '/thumb"></img>';	
			}
			else {
				html += '<span>' + data['name'] + '</span>';
			}
			
			if (data['url']) {
				html += '</a>';
			}
			manf.find('.logo').append(html);
		}
		
		listing = manf.find('.listing');
		listing.empty().hide();
		
		nodeHtml = '<div class="machine-container">';
		if (machine['image_id'] != '') {
			nodeHtml += '<a href="/machines/view-machine/id/' + machine['id'] + '">'
				+ '<img src="/image/' + machine['image_id'] + '/thumb"></img>'
				+ '</a>';
		}
		nodeHtml += '<div class="description">'
			+ '<a href="/machines/view-machine/id/' + machine['id'] + '">'
			+ data['name'] + ' ' + machine['model']
			+ '</a>'
            + '</div>';
		listing.append(nodeHtml);
		listing.fadeIn('slow');
	};
	
	this.run = function() {
		for (var m = 0; m < PROMOTED_LISTINGS.length; ++m) {
			var cur = PROMOTED_LISTINGS[m],
			machines = cur['machines'],
			mfId = cur['id'],
			node,
			nodeHtml;
			
			if (machineLookup[mfId] == undefined) {
				machineLookup[mfId] = Math.floor(Math.random() * machines.length);
			}

			self.renderManufacturer(mfId, PROMOTED_LISTINGS[m], machineLookup[mfId]);
			
			machineLookup[cur['id']]++;
			if (machineLookup[cur['id']] == machines.length) {
				machineLookup[cur['id']] = 0;
			}
		}
		firstRender = false;
	};
	
	self.run();
	setInterval(self.run, 10000);
});

