
function postFormAdd()
{
	$('message').innerHTML = "<p class='loading'>Adding form...</p>";
	new Ajax.Request('/admin/form/add', {
		method: 'post',
		parameters: $('form1').serialize(),
		onSuccess: function(transport) {
			var resp = transport.responseJSON;
			if (resp.text)		$('message').innerHTML = resp.text;
			if (resp.redirect)	window.location = resp.redirect;
		},
		onFailure: function(transport) {
			$('new_field_message').innerHTML = "<p class='note error'>Error adding field.</p>\n";
		},
		sanitizeJSON: false
	});	
}

function postFieldAdd()
{
	$('new_field_message').innerHTML = "<p class='loading'>Adding field...</p>";
	new Ajax.Request('/admin/form/add-field', {
		method: 'post',
		parameters: $('new_field_form').serialize(),
		onSuccess: function(transport) {
			var resp = transport.responseJSON;
			if (resp.text)		$('new_field_message').innerHTML = resp.text;
			if (resp.redirect)	window.location = resp.redirect;
		},
		onFailure: function(transport) {
			$('new_field_message').innerHTML = "<p class='note error'>Error adding field.</p>\n";
		},
		sanitizeJSON: false
	});	
}

function deleteForm(formID, confirmed)
{
	$('message').innerHTML = "<p class='loading'>Loading...</p>";
	new Ajax.Request('/admin/form/delete', {
		method: 'post',
		parameters: 'formID=' + formID + '&confirmed=' + (confirmed ? '1' : '0'),
		onSuccess: function(transport) {
			var resp = transport.responseJSON;
			if (resp.text)		$('message').innerHTML = resp.text;
			if (resp.redirect)	window.location = resp.redirect;
		},
		onFailure: function(transport) {
			$('message').innerHTML = "<p class='note error'>Error during delete.</p>\n";
		},
		sanitizeJSON: false
	});	
}

function deleteField(fieldID, confirmed)
{
	$('message').innerHTML = "<p class='loading'>Loading...</p>";
	new Ajax.Request('/admin/form/delete-field', {
		method: 'post',
		parameters: 'fieldID=' + fieldID + '&confirmed=' + (confirmed ? '1' : '0'),
		onSuccess: function(transport) {
			var resp = transport.responseJSON;
			if (resp.text)		$('message').innerHTML = resp.text;
			if (resp.redirect)	window.location = resp.redirect;
		},
		onFailure: function(transport) {
			$('message').innerHTML = "<p class='note error'>Error during delete.</p>\n";
		},
		sanitizeJSON: false
	});	
}

function deleteAllResponses(formID, confirmed)
{
	$('delete_responses_message').innerHTML = "<p class='loading'>Loading...</p>";
	new Ajax.Request('/admin/form/delete-responses', {
		method: 'post',
		parameters: 'formID=' + formID + '&confirmed=' + (confirmed ? '1' : '0'),
		onSuccess: function(transport) {
			var resp = transport.responseJSON;
			if (resp.text)		$('delete_responses_message').innerHTML = resp.text;
			if (resp.redirect)	window.location = resp.redirect;
		},
		onFailure: function(transport) {
			$('delete_responses_message').innerHTML = "<p class='note error'>Error during delete.</p>\n";
		},
		sanitizeJSON: false
	});	
}

function afterUpdateFieldType(qe)
{
	switch (parseInt(this.value))
	{
		case 1: // Text
			$('options_row').style.display = 'none';	
			$('options_text').innerHTML = 'Options';    
 			$('multiple_row').style.display = 'none';   
			$('height_row').style.display = 'none';
			$('width_row').style.display = '';     
			$('maxChars').style.display = '';
			$('showMaxChars').style.display = '';
			$('fileSize').style.display = 'none';
			$('fileSizeFormat').style.display = 'none';
			break;
		case 2: // Textarea
			$('options_row').style.display = 'none';	
			$('options_text').innerHTML = 'Options';    
 			$('multiple_row').style.display = 'none';   
			$('height_row').style.display = '';
			$('width_row').style.display = ''; 
			$('maxChars').style.display = '';
			$('showMaxChars').style.display = '';
			$('fileSize').style.display = 'none';
			$('fileSizeFormat').style.display = 'none';
			break;
		case 3: // Dropdown
			$('options_row').style.display = '';		
			$('options_text').innerHTML = 'Options';    
 			$('multiple_row').style.display = '';       
			$('height_row').style.display = 'none';     
			$('width_row').style.display = '';
			$('maxChars').style.display = 'none';
			$('showMaxChars').style.display = 'none';
			$('fileSize').style.display = 'none';
			$('fileSizeFormat').style.display = 'none';
			break;
		case 4: // Yes/No
			$('options_row').style.display = 'none';	
			$('options_text').innerHTML = 'Options';    
 			$('multiple_row').style.display = 'none';   
			$('height_row').style.display = 'none';     
			$('width_row').style.display = '';       
			$('maxChars').style.display = 'none';
			$('showMaxChars').style.display = 'none';
			$('fileSize').style.display = 'none';
			$('fileSizeFormat').style.display = 'none';
			break;
		case 5: // File                    
			$('options_row').style.display = '';					
			$('options_text').innerHTML = 'Allowed Extensions';     
			$('multiple_row').style.display = 'none';               
			$('height_row').style.display = 'none';                 
			$('width_row').style.display = '';
			$('maxChars').style.display = 'none';
			$('showMaxChars').style.display = 'none';
			$('fileSize').style.display = '';
			$('fileSizeFormat').style.display = '';
			break;
		case 6: //Radio
			$('options_row').style.display = '';
			$('options_text').innerHTML = 'Options';
			$('multiple_row').style.display = '';
			$('height_row').style.display = 'none';
			$('width_row').style.display = '';
			$('maxChars').style.display = 'none';
			$('showMaxChars').style.display = 'none';
			$('fileSize').style.display = 'none';
			$('fileSizeFormat').style.display = 'none';
			break;
		case 7: //Checkbox
			$('options_row').style.display = '';
			$('options_text').innerHTML = 'Options';
			$('multiple_row').style.display = '';
			$('height_row').style.display = 'none';
			$('width_row').style.display = '';
			$('maxChars').style.display = 'none';
			$('showMaxChars').style.display = 'none';
			$('fileSize').style.display = 'none';
			$('fileSizeFormat').style.display = 'none';
			break;                     
		case 8: //FCFS
			$('options_row').style.display = '';
			$('options_text').innerHTML = 'Options';
			$('multiple_row').style.display = '';
			$('height_row').style.display = 'none';
			$('width_row').style.display = '';
			$('options_message').innerHTML = 'Note: Format for options is [option, #spots]. Ex: Monday, 3';
			$('maxChars').style.display = 'none';
			$('showMaxChars').style.display = 'none';
			$('fileSize').style.display = 'none';
			$('fileSizeFormat').style.display = 'none';
			break;
	}
}

function postUpdateSort(formID)
{
	$('message').innerHTML = "<p class='loading'>Updating...</p>";
	new Ajax.Request('/admin/form/update-field-order', {
		method: 'post',
		parameters: 'formID=' + formID + '&' + Sortable.serialize('fields'),
		onSuccess: function(transport) {
			var resp = transport.responseJSON;
			if (resp.text)
				$('message').innerHTML = resp.text;
		},
		onFailure: function(transport) {
			$('message').innerHTML = "<p class='note error'>Error during update.</p>\n";
		},
		sanitizeJSON: false
	});	
}

function initFormCheckChars()
{
	//if ($('textarea').showMaxChars.value)){
	$('textarea[maxlength]').each(function(thing) {
		var showMaxChars = thing.readAttribute('showMaxChars'); 
		if (showMaxChars > 0) {
			var maxLength = thing.readAttribute('maxlength');
			var span = document.createElement('span');
			span.id = thing.id + '_counter';
			span.innerHTML = ''+maxLength+' characters remaining';
			span.style.marginLeft = '4px';
			thing.parentNode.appendChild(span);
			
			Event.observe(thing.id, 'keyup', function(event) {
				if (thing.value.length >= maxLength)                              
					thing.value = thing.value.substr(0, maxLength);
				span.innerHTML = ''+maxLength - thing.value.length+' characters remaining';
				if (maxLength - thing.value.length == 1)
					span.innerHTML = ''+maxLength - thing.value.length+' character remaining';
			})
		}
	});
	$('input[maxlength]').each(function(thing) {
		
		var showMaxChars = thing.readAttribute('showMaxChars'); 
		if (showMaxChars > 0) {
			var maxLength = thing.readAttribute('maxlength');
			var span = document.createElement('span');
			span.id = thing.id + '_counter';
			span.innerHTML = ''+maxLength+' characters remaining';
			span.style.marginLeft = '4px';
			thing.parentNode.appendChild(span);
			
			Event.observe(thing.id, 'keyup', function(event) {
				if (thing.value.length >= maxLength)
					thing.value = thing.value.substr(0, maxLength);
				span.innerHTML = ''+maxLength - thing.value.length+' characters remaining';
				if (maxLength - thing.value.length == 1)
					span.innerHTML = ''+maxLength - thing.value.length+' character remaining';
			})
		}
	});
	//}
}


