var init = munky.init;

munkyExt = {

	promotionTimeout : null,

	init : function(){
		init();
		
		/*----- Change the events when the venue changes -----*/
		
		$('#pastVenues').change(function(){
											var venue = $(this).children('option:selected').attr('value');
											var html = "";
											if(venue!=0){
												for(i in munky.venueEvents[venue]){
													var event = munky.venueEvents[venue][i];
													html += '<option value="'+event.id+'">'+event.date+' &raquo; '+event.name+'</option>';	
												}
												html += '<option class="orange bold" value="venue">&raquo; View venue page</option>';
												
												$.getJSON(	'ajax-events',
																{'pastVenue' : venue},
																function(json){
																	$('#pastIcons').html(json[0]);
																});
											}
											$('#pastEvents').html(html).trigger('change');
										});
										
		$('#guestVenues').change(function(){
											var date = $(this).children('option:selected').attr('value');
											var html = "<option value=''>&raquo Select event</option>";
											if(date!=0){
												for(i in munky.upcomingEventsByDate[date]){
													var event = munky.upcomingEventsByDate[date][i];
													html += '<option value="'+event.id+'">'+event.name+' @ '+event.venue+'</option>';	
												}
											}
											$('#guestEvents').html(html).trigger('change');
										});
										
		$('#musicAttribute').change(function(){
													var att = $(this).children('option:selected').attr('value');
													var src = {	'genre' : 'djGenres',
																	'dj' : 'djNames',
																	'downloads' : 'trackDownloads',
																	'recent' : 'recentTracks'
																}
																	
													var data = munky[src[att]];
													var html = "";
													
													for(i in data){
														html += '<option value="'+i+'">';
														switch(att){
															case 'genre': case 'dj':
																html += data[i];
																break;
															case 'downloads':
																html += data[i]['downloads'] + ' - ';
															case 'recent': //deliberately no break
																var track = data[i];
																html += track['title'] + ' by ' + track['dj'];
																break;
														}
														html += '</option>';
													}
													
													$('#musicList').html(html);
												});
										
		munky.timePromotion();
		munky.promotionEvents();
										
	},
	
	timePromotion : function(){
		munky.promotionTimeout = setTimeout(function(){ munky.promotion(); }, 8000);
	},
	
	killPromotion : function(){
		clearTimeout(munky.promotionTimeout);
	},
	
	promotionEvents : function(){
		$('#promotion img').mouseover(function(){ munky.killPromotion(); });
		$('#promotion img').mouseout(function(){ munky.timePromotion(); });
	},
	
	promotion : function(){
		$.getJSON(	'ajax-promotion',
						{},
						function(json){
							if(!$.browser.msie){
								$('#promotion').fadeOut('slow', function(){
																					$(this).html(json[0]);
																					$(this).fadeIn('slow');
																					munky.timePromotion();
																					munky.promotionEvents();
																				});
							}
							else {
								$('#promotion').html(json[0]);
								munky.timePromotion();
								munky.promotionEvents();
							}
							
							
						});
	}

}

$.extend(munky, munkyExt);
