﻿

/*  jQuery functions for most pages */
$(document).ready(function(){
	// some parts I couldn't get validate() to work with
	$('textarea').keyup(function() {
		var valen = $(this).val().length;
		var textid = $(this).attr('name');
		if (valen >255) {
			if (!$(this).hasClass('errorHighlight')) { // not already applied
				$(this).addClass('errorHighlight');
				$(this).after('<span id="'+textid+'_warn" class="error"><br />sorry, that\'s too long</span>');
			};
		} else {
			$(this).removeClass('errorHighlight');
			$('#'+textid+'_warn').remove();
		};
	});
	$('input').keyup(function() {
		var valen = $(this).val().length;
		var textid = $(this).attr('name');
		if (valen >255) {
			if (!$(this).hasClass('errorHighlight')) { // not already applied
				$(this).addClass('errorHighlight');
				$(this).after('<span id="'+textid+'_warn" class="error"><br />sorry, that\'s too long</span>');
			};
		} else {
			$(this).removeClass('errorHighlight');
			$('#'+textid+'_warn').remove();
		};
	});
	var daft = $('#daftAnswer').attr('title');
	// var dafLen = daft.length;
	$('#daftAnswer').change(function() {
		var ans = $(this).val();
		// var ansLen = ans.length;
		var textid = $(this).attr('name');
		if ( ans!=daft ) {
			if (!$(this).hasClass('errorHighlight')) { // not already applied
				$(this).addClass('errorHighlight');
				$(this).after('<span id="'+textid+'_warn" class="error"><br />only a machine could get this wrong</span>');
			};
		} else {
			$(this).removeClass('errorHighlight');
			$('#'+textid+'_warn').remove();
		};
	})

	$('#reportForm').validate({
		// rules: { // email and url are set by classes
		 // this doesn't work so wrote my own above
		// 	textarea:	{ maxlength:255	}
		 // NB I can use maxlength="255" attribute but it is not valid HTML
		// },
		messages:{	// override default message - can also be done by giving a title attribute (eg. cardExpireY)
			email: "a valid ",
			web: ": a valid URL please"
		},
		errorPlacement: function(error, element) {
			var lab = element.prev($('label'));
			if (element.attr("name") == "email" ) {
				error.insertBefore(lab);
			} else {
				error.insertAfter(lab);
				// error.insertAfter(element);
			}
		},
		highlight: function(element, errorClass) {
			$(element).addClass('errorHighlight');
		},
		unhighlight: function(element, errorClass) {
			$(element).removeClass('errorHighlight');
		}

	});



});
