﻿Object.prototype.attachEvent = function(sEvent, fnHandler, bUseCapture) {
	this.addEventListener(sEvent.indexOf('on') == 0 ? sEvent.replace('on', '') : sEvent, fnHandler, bUseCapture);
};

window.attachEvent('onload', function() {
	var 
				validators = {
					'name': /.+/,
					'email': /[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i,
					'phone-country': /^\d+$/,
					'phone-area': /^\d+$/,
					'phone-number': /^\d+$/
				},
				urlParser = {
					'sign': /\?[^#]*/,
					'result': /success=[0,1]/,
					'success': /success=(1)?/gi
				},
				r, el, loc;

	if ((el = document.getElementById('response-message')) && (r = urlParser['success'].exec(window.location.href)))
		el.className = el.className + (r[1] ? 'success' : 'failure');

	loc = location.href;

	((el = document.getElementById('success-url')).value == '') &&
					(el.value = urlParser['sign'].test(loc) ? (
						urlParser['result'].test(loc) ? loc.replace(urlParser['result'], 'success=1') : loc + '&success=1'
					)
					: loc + '?success=1');

	((el = document.getElementById('failure-url')).value == '') &&
					(el.value = urlParser['sign'].test(loc) ? (
						urlParser['result'].test(loc) ? loc.replace(urlParser['result'], 'success=0') : loc + '&success=0'
					)
					: loc + '?success=0');


	if (el = document.getElementById('tours-form'))
		el.attachEvent('onsubmit', function(e) {
			e = e || event;
			r = true;

			for (var field in validators)
				if (validators.hasOwnProperty(field)) {
				var 
								valid = false,
								value = (el = document.getElementsByName('tour-client-' + field)[0]) && el.value;

				valid = value && !!validators[field].test(value);

				(el = document.getElementById(field))
									&& (el.className = el.className.replace('not-valid', '') + (valid ? '' : 'not-valid'));

				r &= valid;
			}

			return r || ((e.preventDefault && e.preventDefault()) || (e.cancelBubble && e.cancelBubble()));
		});
});