1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/*
* fixmystreet.js
* FixMyStreet JavaScript
*/
$(function(){
$('#pc').focus();
$('input[type=submit]').removeAttr('disabled');
/*
$('#mapForm').submit(function() {
if (this.submit_problem) {
$('input[type=submit]', this).prop("disabled", true);
}
return true;
});
*/
if (!$('#been_fixed_no').prop('checked') && !$('#been_fixed_unknown').prop('checked')) {
$('#another_qn').hide();
}
$('#been_fixed_no').click(function() {
$('#another_qn').show('fast');
});
$('#been_fixed_unknown').click(function() {
$('#another_qn').show('fast');
});
$('#been_fixed_yes').click(function() {
$('#another_qn').hide('fast');
});
var timer;
function email_alert_close() {
$('#email_alert_box').hide('fast');
}
// add in handling for html5 form types...
// should be removed if/when jQuery supports these by default
// NB: required alteration of validation plugin code also
jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
var elem = e.target,
type = elem.type;
if ( ( type === "email" || type === "url" ) && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
e.liveFired = undefined;
return jQuery.fn.trigger( "submit", this, arguments );
}
});
jQuery.expr.filters[ 'email' ] = function( elem ) {
return "email" === elem.type;
};
// FIXME - needs to use translated string
jQuery.validator.addMethod('validCategory', function(value, element) {
return this.optional(element) || value != '-- Pick a category --'; }, validation_strings['category'] );
// TODO - test in older browsers
jQuery.validator.addMethod('validName', function(value, element) {
var validNamePat = /\ba\s*n+on+((y|o)mo?u?s)?(ly)?\b/i;
return this.optional(element) || value.length > 5 && value.match( /\S/ ) && !value.match( validNamePat ) }, validation_strings['category'] );
$("#mapForm").validate({
messages: validation_strings,
onkeyup: false,
errorElement: 'div',
errorClass: 'form-error',
errorPlacement: function( error, element ) {
element.parent('div').before( error );
},
submitHandler: function(form) {
if (form.submit_problem) {
$('input[type=submit]', form).prop("disabled", true);
}
form.submit();
}
});
/* set correct required status depending on what we submit */
$('#submit_sign_in').click( function(e) {
$('#form_category').addClass('required validCategory').removeClass('valid');
$('#form_name').removeClass('required');
} );
$('#submit_register').click( function(e) {
$('#form_category').addClass('required validCategory').removeClass('valid');
$('#form_name').addClass('required');
} );
$('#problem_submit > input[type="submit"]').click( function(e) {
$('#form_category').addClass('required validCategory').removeClass('valid');
$('#form_name').addClass('required');
} );
$('#email_alert').click(function(e) {
if (!$('#email_alert_box').length)
return true;
e.preventDefault();
if ($('#email_alert_box').is(':visible')) {
email_alert_close();
} else {
var pos = $(this).position();
$('#email_alert_box').css( { 'left': ( pos.left - 20 ) + 'px', 'top': ( pos.top + 20 ) + 'px' } );
$('#email_alert_box').show('fast');
$('#alert_rznvy').focus();
}
}).hover(function() {
window.clearTimeout(timer);
}, function() {
timer = window.setTimeout(email_alert_close, 2000);
});
$('#email_alert_box').hover(function() {
window.clearTimeout(timer);
}, function() {
timer = window.setTimeout(email_alert_close, 2000);
});
});
|