var n_blocks_visible = 3;

$(document).ready(function(){
	
	init_event_form();
	init_feedback_form();

	// handles the 'more' links

	$('a.more').not('ul.fixed a, .external').click(function(){
		
		$(this).next().show();
		$(this).prev().remove();
		$(this).remove();
		return false;
	});

	// handles pagination

	$('div.page-set').each(function(){
		
		$(this).data('n_sets', Math.ceil($(this).find('div.block').length / 3));

		if ($(this).data('n_sets') > 1){

			var controls		= $(this).find('div.nav');
			var controls_list	= controls.find('ul');
			var controls_n		= controls_list.find('li:first');

			for (var i = 0 ; i < $(this).data('n_sets') ; i++){

				controls_n.clone().appendTo(controls_list);
			}

			controls_n.remove();
			
			$(this).find('li a').each(function(i){
				
				$(this).attr('rel', i);
				$(this).html(i + 1);
			});

			$(this).data('curr_page', 0);
			$(this).find('a[rel=0]').parent().addClass('active');
			
			$(this).find('a.prev, a.next, a.number').click(function(){
				
				var curr_page = $(this).closest('div.page-set').data('curr_page');

				if ($(this).hasClass('next')){

					$(this).closest('.nav').find('a.prev').show();
					var new_page = curr_page + 1;
				
				} else if ($(this).hasClass('prev')) {
					
					$(this).closest('.nav').find('a.next').show();
					var new_page = curr_page - 1;
				
				} else {
					
					var new_page = parseInt($(this).attr('rel'));
				}

				if (new_page == $(this).closest('div.page-set').data('n_sets') - 1){
					
					$(this).closest('.nav').find('a.next').hide();
				
				} else {
					
					$(this).closest('.nav').find('a.next').show();
				}

				if (new_page == 0){
					
					$(this).closest('.nav').find('a.prev').hide();
				
				} else {
					
					$(this).closest('.nav').find('a.prev').show();
				}
				
				$(this).closest('.nav').find('a.number').parent().removeClass('active');
				$(this).closest('.nav').find('a[rel=' + new_page + ']').parent().addClass('active');
				$(this).closest('div.page-set').data('curr_page', new_page);
				
				$(this).closest('div.page-set').find('div.block').hide();
				$(this).closest('div.page-set').find('div.set-' + new_page).show();

				$(this).blur();
				return false;
			});
		
		} else {
			
			$(this).find('div.nav').remove();
		}
	});
});

function init_event_form(){
	
	var origs = { 
						submitter_name		: 'YOUR NAME',
						submitter_email		: 'YOUR EMAIL',
						name				: 'TITLE OF EVENT',
						submitter_date		: 'DATE(S)',
						submitter_venue		: 'VENUE',
						description			: 'DESCRIPTION OF EVENT',
						email_subscribe		: 'Enter your email address'
						
					}

	$('form#event-add-form').submit(function(){

		$('form#event-add-form').ajaxSubmit({ url: '/events/add/', type: 'POST', target: '#event-form-cont', success: function(){ init_event_form(); } });

		return false; 
	});

	$('form#email-subscribe').submit(function(){

		$('form#email-subscribe').ajaxSubmit({ url: '/subscribers/add_email/', type: 'POST', dataType: 'json', success: function(e){
			
			$('#email-subscribe-input').val(e.message);
			$('#email-subscribe-input').css('color', e.status > 0 ? '#05931C' : '#FF0000');
		} });

		return false; 
	});

	$('form#event-add-form input, form#event-add-form textarea, form#email-subscribe input').focus(function(){

		if ($(this).val() == origs[$(this).attr('name')]){
			
			$(this).val('');
		}
	});

	$('form#event-add-form input, form#email-subscribe input').blur(function(){

		if ($(this).val() == ''){
			
			$(this).val(origs[$(this).attr('name')]);
		}
	});

	// Event Image Uploading

	if ($('#uploader-button').length > 0){

		swfu = new SWFUpload({

			// Backend Settings
			upload_url: "/events/add_image/",

			// File Upload Settings
			file_size_limit : "7 MB",	// 7 MB
			file_types : "*.jpg;*.png",
			file_types_description : "JPG or PNG Images",
			file_upload_limit : "1",

			// Event Handler Settings - these functions as defined in Handlers.js
			//  The handlers are not part of SWFUpload but are part of my website and control how
			//  my website reacts to the SWFUpload events.
			file_queue_error_handler : fileQueueError,
			file_dialog_complete_handler : fileDialogComplete,
			upload_progress_handler : uploadProgress,
			upload_error_handler : uploadError,
			upload_success_handler : uploadSuccess,
			upload_complete_handler : uploadComplete,

			// Button Settings
			// button_image_url : "/_ui/images/ico_up_arrow.gif",
			button_placeholder_id : "uploader-button",
			button_width: 150,
			button_height: 22,
			button_text : '<span class="button">Add Image <span class="buttonSmall">(optional, 7 MB max)</span></span>',
			button_text_style : '.button { font-family: Arial, sans-serif; font-size: 13pt; font-weight: bold; color: #51AB20 } .buttonSmall { font-size: 10pt; }',
			button_text_top_padding: 0,
			button_text_left_padding: 0,
			button_window_mode: SWFUpload.WINDOW_MODE.TRANSPARENT,
			button_cursor: SWFUpload.CURSOR.HAND,
			
			// Flash Settings
			flash_url : "/js/lib/SWFUpload-v2.2.0.1-Core/Flash/swfupload.swf",

			custom_settings : {
				upload_target : "divFileProgressContainer"
			},
			
			// Debug Settings
			debug: false
		});
	}
}

function init_sms(){
	
	$('form#sms-subscribe').submit(function(){
		
		$('form#sms-subscribe').ajaxSubmit({ url: '/subscribers/add/', type: 'POST', target: '#sms-cont', success: function(){ init_sms(); } });

		return false; 
	});
}

function init_feedback_form(){

	var f_origs = { 
						name				: 'YOUR NAME',
						email				: 'YOUR EMAIL',
						subject				: 'SUBJECT',
						description			: 'YOUR FEEDBACK'						
					}
	
	$('form#feedback-add-form').submit(function(){

		$('form#feedback-add-form').ajaxSubmit({ url: '/about/add_feedback/', type: 'POST', target: '#event-form-cont', success: function(){ init_feedback_form(); } });

		return false; 
	});

	$('form#feedback-add-form input, form#feedback-add-form textarea, form#feedback-subscribe input').focus(function(){

		if ($(this).val() == f_origs[$(this).attr('name')]){
			
			$(this).val('');
		}
	});

	$('form#feedback-add-form input, form#feedback-subscribe input').blur(function(){

		if ($(this).val() == ''){
			
			$(this).val(f_origs[$(this).attr('name')]);
		}
	});
}