﻿var activeFilter = '';

// Activity reports builder
function clearForm(jQformObj) {
	jQformObj.find('.hidden').hide();
	jQformObj.find('.hidden input[type="text"], .hidden select, textarea').val('');
}

function getFilterFieldName(filter) {
	var outputStr = '';
	switch(filter){
		case 'status':
		case 'contact_person':
		case 'activity':
			outputStr = filter
			break;
		case 'postcode':
		case 'keyword':
			outputStr = 'kw';
			break;
		case 'active':
			outputStr = 'state';
			break;
	};
	return outputStr;
}

function capitalise(string) {
	return string.charAt(0).toUpperCase() + string.slice(1);
}

function getFilterName(filter) {
	var outputStr = '';
	switch(filter){
		case 'status':
		case 'contact_person':
		case 'activity':
		case 'active':
			outputStr = $('label[for="'+getFilterFieldName(filter)+'"]').html().replace(':', '');
			break;
		case 'postcode':
		case 'keyword':
			outputStr = 'matching ' + filter;
			break;
	};
	return outputStr;
}

function allowBlankFilter(filter) {
	switch(filter){
		case 'contact_person':
		case 'search_fields':
		case 'registration':
		case 'login':
		case 'member_mailing':
			return true;
		default:
			return false;
	};
}

function hasDateRange(filter) {
	switch(filter){
		case 'activity':
		case 'registration':
		case 'login':
		case 'member_mailing':
			return true;
		default:
			return false;
	};
}

function showDateRange(filter){
	if (hasDateRange(filter)&& (($('#'+filter).length && $('#'+filter).val()) || !$('#'+filter).length)) {  
		$('#date_range').closest('div.hidden').fadeIn();				
	} else {
		$('#date_range').closest('div.hidden').hide();
	}
}



function hasSearchFields(filter) {
	switch(filter){
		case 'keyword':
			return true;
		default:
			return false;
	};
}

function isArray(obj) {
	return obj.constructor == Array;
}

function saveFilter(formObj, autoClose) {
	if (arguments.length == 1) {
		var autoClose = true;
	}
	var data = {}, filterDesc = '', searchFields = '', val = '';
	if(activeFilter.length){
		var fieldName = getFilterFieldName(activeFilter);
		if (fieldName) {
			val = $('#'+getFilterFieldName(activeFilter)).val();
		}
		if (!val && !allowBlankFilter(activeFilter)) {
			alert('Please choose a condition for this filter');
		} else {
			data.mode = $('#filter_mode').val();
			data.type = {"ref":activeFilter,"name":fieldName};
			data.filter = [];
			if (hasSearchFields(activeFilter)) {
				searchFields = $('#search_fields').val();
				if (searchFields && !isArray(searchFields)) {
					searchFields = new Array(searchFields);
				}
			}
			if (val && isArray(val)) {
				for(filterVal in val) {
					data.filter.push({"val":val[filterVal],"search_fields":searchFields});						
				}
			} else {
				data.filter.push({"val":val, "search_fields":searchFields});
			}
			
		 	if(hasDateRange(activeFilter)) {
		 		data.daterange = {};
		 		data.daterange.range = $('#date_range').val();
				data.daterange.from = $('#db_date_from').val();
		 		data.daterange.to = $('#db_date_to').val();
		 	}
		 	addFilter(data);
		 	clearForm($('#ar-filter-form').find('form'));
		 	if (autoClose) {
		 		$('#ar-filter-form').dialog('close');	
		 	}
		}		
	}
	else {
		alert('You have not selected a filter to add');
	}	
	return false;
}

function addFilter(filterData) {
	var rowCount = $('#buttons-row').siblings.length;
	$.get('/admin/utils/json/get-filter-desc.php', filterData, function(response) {
		if (response.status == 'OK') {
			if(rowCount == 2) {
				$('#help-info').hide();
				$('#name_report').show();
			};
			var htmlStr = '<tr>';
			if (filterData.mode=='1') {
				htmlStr += '<td class="inc-filter">';
			} else {
				htmlStr += '<td class="ex-filter">';
			}
			htmlStr += response.data.desc;
			htmlStr += '<input name="filter_data[]" value="'+escape(JSON.stringify(filterData))+'" type="hidden" />';
			htmlStr += '<a href="" onclick="return removeFilter(this);" class="small-bin" title="Remove Filter">REMOVE</a>';
			htmlStr += '</td></tr>';
			$('#buttons-row').before(htmlStr);
		} else {
			alert('Adding the filter failed, please try again');
	 	}
	});
}

function removeFilter(linkObj) {
	var rowCount = $(linkObj).closest('tr').siblings().length;
	if (rowCount == 2) {
		$('#help-info').show();
		$('#name_report').hide();
	}
	$(linkObj).closest('tr').remove();
	return false;
}

// End activity reports builder


// Activity logging 
function postData(formObj) {
	$.post("/admin/utils/json/save-activity.php", $(formObj).formToJSON(), function(response) {
		if (response.status == 'OK') {
			$(formObj).remove('p.error');
			var html = '<tr><td>'+((response.data.activity)?response.data.activity:' - ')+'</td>';
			html += '<td>'+response.data.comments.replace('\n','<br />')+'</td>';
			html += '<td nowrap="nowrap">'+$.format.date(response.data.dt_added, 'dd-MM-yyyy HH:mm:ss')+"</td>";
			html += '<td nowrap="nowrap">'+$.format.date(response.data.activity_date, 'dd-MM-yyyy')+"</td>";
			html += '</tr>';
			$('.activity-history tr').first().after(html);
			$(formObj).dialog('close');
		} else {
			var failData = '<p>Sorry there was a problem:</p>';
			for (var i=0; i<response.reason.length; i++) {
				failData += '<br> - '+response.reason[i];
			}
			failData = '<div class="error">'+failData+'<br /><br></div>';
			$(formObj).prepend(failData);
		}
			
	});
	return false;
}

function importFTPaudio(linkObj) {
	var ajaxComplete = false;
	$(linkObj).fadeOut(function(){
		$(linkObj).after('<strong id="wait-note" style="float: left; width: 200px; display: block; margin-top: 15px; color:red;">Please wait....</strong>');
		$('#wait-note').bind('fade-cycle', function() {
			$(this).fadeOut('slow', function() {
				$(this).fadeIn('slow', function() {
					if (!ajaxComplete) {
						$(this).trigger('fade-cycle');
					}
				});
			});
		}).trigger('fade-cycle');
		
		
		$.ajax({
			url: '/admin/utils/json/move-audio-uploads.php',
			cache: false,
  			success: function(response) {
				ajaxComplete = true;
				if (response.status != 'OK') {
					var failData = 'Sorry there was a problem:\n';
					for (var i=0; i<response.reason.length; i++) {
						failData += ' - '+response.reason[i];
					}
					$('#wait-note').remove();
					$(linkObj).show();
					alert(failData);
				} else {
					$('#wait-note').stop().css('color', 'green').show().html(response.data[0]);
				}
			},
			error: function (jqXHR, textStatus, errorThrown) {
				$('#wait-note').remove();
				$(linkObj).show();
				alert(errorThrown);	
			}
		});
		
	});
		
}

