$(document).ready(function(){
  
  $(this).ajaxStart(function(){
    $.fancybox.showActivity();
  });
  
  $(this).ajaxStop(function(){
    $.fancybox.hideActivity();
  });
  
  var fBoxConfig = new Array();
  fBoxConfig['normal'] = {'transitionIn': 'elastic', 'transitionOut': 'elastic', 'titleShow': true};
  fBoxConfig['modal'] = {'transitionIn': 'elastic', 'transitionOut': 'elastic', 'modal': true};
  fBoxConfig['online'] = {'autoDimensions': true, 'width': 400, 'height': 'auto', 'transitionIn': 'elastic', 'transitionOut': 'elastic'}
  
  var formValidator = {
    f_Name: /\S+/i,
    f_Company: /\S+/i,
    f_Email: /\S+@\S+\.\S{2,3}/i,
    f_Phone: /\S+/i
  };
  
  // feedback
	var values = [
		'Имя',
		'Компания',
		'Телефон',
		'Адрес почты',
		'Дополнительная информация'
	];
  
  function isRequired(el){
    var classes = el.attr('class');
    return /required/i.test(classes);
  }
  
  var formErrors = new Array();
    
  function showFormErrors()
  {
     $('.form_notify').html('<ul>'+formErrors.join('')+'</ul>').slideDown(800, function(){
        setTimeout("$('.form_notify').slideUp(800);", 4000);
     });
  }
  
  function validateFormElements(elements)
  {
    var error = false;

    $('.form_notify').fadeOut(150);
    formErrors = new Array();

    elements.each(function(){
      var el = $(this);
      el.removeClass('invalid_value');
      if(isRequired(el) == true && el.val().length == 0)
      {
	el.addClass('invalid_value');
	error = true;
      }
      
      var elName = el.attr('name');
      var validator = formValidator[elName];

      if(validator != undefined && validator != null)
      {
	var val = el.val();
	var def_val_index = el.attr('id').split('f')[1];
	if(val == values[def_val_index])
	  val = '';
	if(validator.test(val) == false && el.val().length > 0)
        {
	  el.addClass('invalid_value');
	  error = true;
          formErrors.push("<li>Поле "+values[def_val_index]+" заполнено неправильно.</li>");
          sending_success = false;
        }
      }
    });
    
    return !error;
  }

  // online form sending
  $('#feedback form input[type="submit"]').click(function(){
        
    var form = $(this).parents('form:first');
    var elements = $('input[type="text"], textarea, select', form);
        
    if(validateFormElements(elements) == true)
    {
      $.post(form.attr('action'), form.serialize(), function(resp){
	// $.fancybox(resp, fBoxConfig['online']);
	$('input[type="text"], textarea', form).each(function(){
	  var id = $(this).attr('id').split('f')[1];
	  var val = values[id];
	  $(this).val(val);
	});
	$('input[type="checkbox"]', form).attr('checked', false);
	$('form input[type="radio"]', form).each(function(){
	  $(this).attr('checked', false);	    
	});

        formErrors.push("<li>Сообщение было успешно отправлено.</li>");
        showFormErrors();
      });
    }
    
    showFormErrors();
    
    return false;    
  });
	
	// fancybox
	$(".fancybox").fancybox();

	// nth-child fix
	if ( $.browser.msie && $.browser.version <=8 )
		$('.table tbody tr:nth-child(even)').addClass('even');
		
	
	$('#form input[type="text"], #form textarea').focus(function(){
		var current = $(this).attr('id').split('f')[1];
		if ( $(this).val() == values[current] )
			$(this).val('');
	});
	
	$('#form input[type="text"], #form textarea').blur(function(){
		var current = $(this).attr('id').split('f')[1];
		if ( $(this).val() == '' )
			$(this).val(values[current]);
	});

});
