﻿(function($) {
var $current_step = 1;
var $valid_captcha = false;
var $sync_flag = false;
    $.fn.formStepTo = function(options) {
		$(".stepp").click(stepButton);
		
		$.validator.addMethod("customurl", function(value, element) { 
			if((value == '') || value == 'http://') {
				return true;
			}else{
				return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
			}
		}, "Введите корректный адрес!");
		
		$.validator.addMethod("captcha2", function(value, element){
			$.ajax({type:"GET",
				   url :"php/check_antibot.php",
				   data : "sec_code=" + $('#captcha').val(),
				   async : false,
				   dataType : "text",
				   success : function(data){
						if ('t' == data){
							$valid_captcha = true;
							//$("#orderForm").submit();
						}else{
							$valid_captcha = false;
						}
					}});
				if($valid_captcha){
					return true;
				}else{
					return this.optional(element);
				}
		}, 'Неверный код на картинке, повторите ввод!');
			
        $("#descstep" + 1).addClass('current');
        $("#contstep" + 1).show();
		
		$('#orderForm').validate({
								 debug: false,
								 onkeyup: false,
								 onclick: false,
								 onfocusout: false,
								 focusCleanup: false,
								 errorClass: "invalid",
								 errorLabelContainer: ".error-block",
								 errorElement: "p",
								 invalidHandler: function(form, validator) {
									var errors = validator.numberOfInvalids();
									if (errors) {
										$("div.error-block").slideDown('fast');
									}
							     },
								 messages: {
									 fio: "",
									 phone: "",
									 email: {
									   required: "",
									   email: "Введите корректный электронный ящик!"
									 },
									 company: "",
									 captcha: {
										 required: "",
										 captcha2: "Неверный код на картинке, повторите ввод!"
									 }
								 }
		}); 
		
		function stepButton() {
			iD = $(this).attr('id');
			$current_step = iD.replace(/step/,'');
			if ( $(this).children('span').hasClass("fw")) {
				$('.error').removeClass('error');
				if($('#orderForm').valid()){
					step();
					addErrorClasses();
				}
				$('.invalid').parent().parent().addClass('error');
			}else{
				step();
				removeErrorClasses();
			}
		}
 
		function step(to) {
			$('div.step').hide();
			$('ul.tabsForm li').removeClass('current');
			$('#descstep' + $current_step).addClass('current');
			$('#contstep' + $current_step).show();
		}
		
		function addErrorClasses() {
			if($current_step == 2) {
				$('#company').addClass('required');
			}
			if($current_step == 4) {
				$('#url1').addClass('customurl');
				$('#url2').addClass('customurl');
				$('#url3').addClass('customurl');
			}
			if($current_step == 5){
				$('#captcha').addClass('captcha2');
				$('#captcha').addClass('required');
			}
		}
		
		function removeErrorClasses() {
			if($current_step == 1) {
				$('#company').removeClass('required');
				$('#company').removeClass('invalid');
				$('#company').parent().parent().removeClass('error');
			}

			if($current_step == 3) {
				$('#url1').removeClass('invalid');
				$('#url1').removeClass('customurl');
				$('#url2').removeClass('invalid');
				$('#url2').removeClass('customurl');
				$('#url3').removeClass('invalid');
				$('#url3').removeClass('customurl');
				$('#url1').parent().parent().removeClass('error');
			}
			if($current_step == 4) {
				$('#captcha').removeClass('captcha2');
				$('#captcha').removeClass('required');
			}
			$("div.error-block").slideUp('fast');
		}
    }
})(jQuery); 