var init = munky.init;

munkyExt = {

	filterDefault : null,

	init : function(){
		init();
		
		munky.ajaxChange();
		
		/*----- Filter by photographer -----*/
		
		$('#snapped a.profileIcon').click(function(){
		
			$(this).blur();
			
			var href = $(this).attr('href');
			var rel = $(this).attr('rel').match(/^(\d+)-(\d+)(.*)/);
			
			if($(this).hasClass('selected')){
				location.href = rel[3];
				return false;
			}
			
			$('#noFilter').show();
			
			$('#snapped a.profileIcon').removeClass('selected');
			$(this).addClass('selected');
			
			munky.ajaxUpdate(rel[1], 1, href, rel[2]);
			
			$('#filteredPhotographer').html(rel[2]);			
			
			return false;
		});
		
		$('#noFilter').click(function(){
			$(this).blur();
			
			$('#snapped a.profileIcon').removeClass('selected');
			$(this).hide();
			
			munky.ajaxUpdate($(this).attr('rel'), 1, $(this).attr('href'), false);
			
			$('#filteredPhotographer').html('');
			
			return false;
		});
		
		/*------------------------*/
		
		$('#eventForm p').each(function(){
			if($(this).html().match(/Date/)){
				munky.calendar($(this));
			}
		});
		
		/*----- Accordion venues -----*/
		//IE 7 can't handle it
		if(!(jQuery.browser.msie && jQuery.browser.version.match(/^7/))){

			$('#events .day .events').hide();
			
			$('#events .day .orange.hidden').show();
			
			$('#events .day:nth-child(odd) .date').addClass('alt');
			
			$('#events .day .date').css('cursor', 'pointer');		
			
			$('#events .day .date').click(function(){
																var events = $(this).parent().children('div.events');
																if(!events.eq(0).hasClass('open')){
																	var open = $('#events .day .events.open');
																	open.slideUp();
																	open.removeClass('open');
																	events.slideDown();
																	events.addClass('open');
																}
																else {
																	events.slideUp();
																	events.removeClass('open');
																}
															});
															
		}
														
		/*----- Filter friends -----*/
		$('#friendFilter').show();
		$('.nonMembers').css('margin-bottom', $('#friendFilter').css('height'));
		
		var friendDefault = $('#friendFilterInput').attr('value');
		
		$('#friendFilterInput').focus(function(){
															if($(this).attr('value')==friendDefault){
																$(this).attr('value', '');
															}
														});
														
		$('#friendFilterInput').blur(function(){
															if($(this).attr('value')==''){
																$(this).attr('value', friendDefault);
															}
														});
														
		$('#friendFilterInput').keyup(function(){
															var friendMatch = new RegExp($(this).attr('value'), 'i');
															$('#addFriends span').each(function(){
																										if($(this).html().match(friendMatch)){
																											$(this).show();
																										}
																										else {
																											$(this).hide();
																										}
																									});
														});
														
		/*----- Show more non member friends -----*/
		var boxes = $('.lightGrayBox');
		$('#showMore').show();
		
		var showDefault = $('#showMore').html();
		$('#showMore').click(function(){
												$(this).blur();
												if($(this).hasClass('more')){ //show less
													boxes.eq(2).fadeOut("slow", function(){
														boxes.eq(0).fadeIn("slow");
													});
													$(this).html(showDefault);
													$(this).removeClass('more');
												}
												else { //show more
													boxes.eq(0).fadeOut("slow", function(){
														boxes.eq(2).fadeIn("slow");
													});
													$(this).html('Show Munky friends');
													$(this).addClass('more');
												}
												return false;
											});
											
		/*----- Clear username & password fields for contact imports -----*/
		var importFields = $('#importForm input');
		var username = importFields.eq(0);
		var password = importFields.eq(1);

		var usernameCleared = false;
		var passwordCleared = false;		
		
		username.focus(function(){
									if(!usernameCleared){
										$(this).attr('value', '');
										usernameCleared = true;
									}
								});
								
		password.focus(function(){
									if(!passwordCleared){
										$(this).attr('value', '');
										passwordCleared = true;
									}
								});
		
	},
	
	ajaxChange : function(){
		$('.pages a').click(function(){
											var href = $(this).attr('href');
											var rel = $(this).attr('rel').match(/(\d+)-(\d+)/);
											munky.ajaxUpdate(rel[1], rel[2], href);
											return false;
										});
	},
	
	ajaxUpdate : function(id, p, href, ph){
	
		if(ph==undefined){
			ph = $('#filteredPhotographer').html();
		}
	
		$.getJSON(	"ajax",
						{'id' : id, 'p' : p, 'ph' : ph},
						function(json){
							if(json=="fail"){
								location.href = href;
							}
							else {
								$('.pages').html(json[0]);
								$('#eventPhotoThumbs').html(json[1]);
								munky.ajaxChange();
							}
						});
	}

}

$.extend(munky, munkyExt);
