PageSourceSearch

https://hotel-lagonaki.ru/catalog/view/javascript/buyoneclick.js

js hotel-lagonaki.ru collected 2026-10-04 23:34:55 UTC 2,955 bytes, 93 lines download raw bytes

1$(document).ready(function() {
2	$('input').focus(function(){
3		$(this).parent().removeClass('has-error');
4		// console.log('removeClass!');
5	});
6    $('#order-form').submit(function(event) {
7		event.preventDefault ? event.preventDefault() : (event.returnValue = false);
8		if(!formValidation(event.target)){return false;}
9		var action = $(this).attr('action');
10		var sendingForm = $(this);
11		var submit_btn = $(this).find('button[type=submit]');
12		var value_text = $(submit_btn).text();
13		var waiting_text = 'SENDING';
14		$.ajax({
15			type: "POST",
16			url: action,
17			data: $(event.target).serializeArray(),
18			beforeSend:function(){
19				$(submit_btn).prop( 'disabled', true );
20				$(submit_btn).addClass('waiting').text(waiting_text);
21			},
22			success: function(msg,status){
23				// console.log(msg);
24				var success = true;
25				$(sendingForm).trigger('reset');
26				$(submit_btn).removeClass('waiting');
27				$(submit_btn).text(value_text);
28				$(submit_btn).prop( 'disabled', false );
29				$('#order').modal('hide');
30				$('#order').on('hidden.bs.modal', function (e) {
31					if (success) {
32						$('#success').modal('show');
33						setTimeout(function(){
34								console.log('success sending!');
35								$('#success').modal('hide');
36						}, 4000);
37						success = false;
38					}
39				});
40			},
41			error: function(){
42				$(submit_btn).prop( 'disabled', false );
43				$(submit_btn).removeClass('waiting').text("ERROR");
44				setTimeout(function(){
45					$(submit_btn).delay( 3000 ).text(value_text);
46				}, 3000);
47			}
48		});
49		event.preventDefault();
50    });
51});
52function formValidation(formElem){
53	var elements = $(formElem).find('.required');
54	var errorCounter = 0;
55	$(elements).each(function(indx,elem){
56		var placeholder = $(elem).attr('placeholder');
57		if($.trim($(elem).val()) == '' || $(elem).val() == placeholder){
58			$(elem).parent().addClass('has-error');
59			errorCounter++;
60		}
61		else{
62			$(elem).parent().removeClass('has-error');
63		}
64	});
65	$('input[name="phone"]').each(function() {
66		var pattern = new RegExp(/^(\(?\+?[0-9]*\)?)?[0-9_\- \(\)]*$/);
67		var data_pattern = $(this).attr('data-pattern');
68		var data_placeholder = $(this).attr('placeholder');
69		// console.log(pattern.test($(this).val()));
70		if(!pattern.test($(this).val()) || $.trim($(this).val()) == '' ){
71			console.log('NON valid phone!');
72			$('input[name="phone"]').parent().addClass('has-error');
73			errorCounter++;
74		} else if (data_pattern == 'true') {
75			// console.log('data-pattern = true');
76			if ($(this).val().length != data_placeholder.length) {
77				console.log('Phone too short!!!');
78				$('input[name="phone"]').parent().addClass('has-error');
79				errorCounter++;
80			}
81		}
82		else{
83			$(this).parent().removeClass('has-error');
84		}
85	});
86	if (errorCounter > 0) {
87		$('.fancy_form_error_text').show();
88		return false;
89	} else {
90		$('.fancy_form_error_text').hide();
91		return true;
92	}
93}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.