// d = console.log;
$(document).ready(function() {
   // таким образом быстрее всего управлять состоянием элементов
   $('body').addClass('js'); 
   
   $("#top-menu ul li").each(function() {
      $(this).hover(
         function() {
            $(this).addClass("active");
         },
         function() { 
            $(this).removeClass("active");
         }
      );
   });
   
   $(".fast-menu ul li").each(function() {
      $(this).hover(
         function() {
            $(this).addClass("act");
         },
         function() { 
            $(this).removeClass("act");
         }
      );
   });
   
   $(".rotator-in ul li").each(function() {
      $(this).hover(
         function() {
            $(this).addClass("fon");
         },
         function() { 
            $(this).removeClass("fon");
         }
      );
   });
   
   $(".project-block").each(function() {
      $(this).hover(
         function() {
            $(this).addClass("fan");
         },
         function() { 
            $(this).removeClass("fan");
         }
      );
   });
   
   
   $('#captcha_reload').click(function(){
      var $c = $(this).parents('table').eq(0).find('img').eq(0);
      $c.attr( 'src', $c.attr('src') + '&' + Math.random() )
      return false;
   });
   var $forms = $('#form1, #form3, #form4, #form5, #form6, #form7, #form8');
   $forms.find('input[type=text]').placeholder();
   $forms.submit(function(){
      
      var result = true;
      var req = 0;
      $(this).find('input, textarea').each(function(){
         $(this).removeClass('error');
         if( $(this).hasClass('req') && $(this).val() == '' ) {
            $(this).addClass('error');
            req++;
            result = false;
         }
      });
      
      var errors = [];
      if( req > 0 ) {
         errors.push( 'Не все обязательные поля были заполнены' );
      }
      
      if( errors.length > 0 ){
         alert( errors.join('\n') );
      }
      return result;
   });
   
   
   
   /**
      карусель
   */
   // говнокод, конечно, но когда получаешь верстку, чужие плагины прикручивать сложно, 
   // а этот код приводить в порядок просто лень. главное, что он работает
   function carouselDeactivateArrow($item){
      $item.hasClass('ar-left') ? $item.addClass('none1') : $item.addClass('none2 ');
      return;
   }
   function carouselActivateArrow($item){
      $item.hasClass('ar-left') ? $item.removeClass('none1') : $item.removeClass('none2 ');
      return;
   }
   
   if( $('#carousel').length ) {
		var $carousel = $('#carousel');
		var $prev = $('.rotator-box .ar-left');
		var $next = $('.rotator-box .ar-right');
		$prev[0].onselectstart = function() {return false;}
		$prev[0].onmousedown  = function() {return false;}
		$next[0].onselectstart = function() {return false;}
		$next[0].onmousedown  = function() {return false;}
		var cd = $carousel.width(); // carousel dimention
		var sw = 127+15+3; // step
		var wd = $carousel.parent().width(); // wrapper dimention
		var maxm = -cd + ( wd + sw ) ; // max margin 
		var ml = 0; // start margin
		$next.click(function(){
			if( !$(this).hasClass('disabled') && ml > maxm ) {
				ml -= sw;
				$carousel.animate({marginLeft:ml + 'px'});
				if( ml <= maxm ) carouselDeactivateArrow($next);
				carouselActivateArrow($prev);
			}
		});
		$prev.click(function(){
			if( !$(this).hasClass('disabled') && ml != 0 ) {
				ml += sw;
				$carousel.animate({marginLeft:ml})
				if( ml == 0 ) carouselDeactivateArrow($prev);
				carouselActivateArrow($next);
			}
		});
		
		if( ml == 0 ) { // прячем стрелочки
			carouselDeactivateArrow($prev);
		}//if
		if( ml == maxm ) { // прячем стрелочки
			carouselDeactivateArrow($next);
		}//if
		
		// если количество элементов меньше 5, то прячем стрелочки
		if( $carousel.find('li').length < 5 ) {
			carouselDeactivateArrow($prev);
			carouselDeactivateArrow($next);
		}//if
	}
   /*
      конец карусели 
   */
   
   // на странице рубрики галереи
   $('.in-page #carousel li a').click(function(){
      
      // если кликаем на последний элемент, то прячем выключаем стрелку вправо
      var c = $('.in-page #carousel li a').length;
      var i = $(this).index('.in-page #carousel li a');
      if( i === c-1 ) {
         $('.big-rotator .ar-right').addClass('none2');
      } 
      if( i === 0 ) {
         $('.big-rotator .ar-left').addClass('none1');
      }//if
      if( $(this).parent().next().length ) {
         $('.big-rotator .ar-right').removeClass('none2');
      }
      if( $(this).parent().prev().length ) {
         $('.big-rotator .ar-left').removeClass('none1');
      }
      $('#rotator_text > div').hide();
      $('#rotator_text > div').eq(i).fadeIn()
      
      var src = $(this).attr('big_src');
      $('#big_img').slideUp(function(){
         $('#big_img').attr( 'src', src ).bind('load',function(){
            $('#big_img').slideDown().unbind('load');
         });
      });
      return false;
   });
   
   $('.big-rotator .ar-left').click(function(){
      var big_src = $('#big_img').attr('src');
      $('.in-page #carousel li a').each(function(){
         if( ( $(this).attr('big_src') == big_src ) ) {
            $(this).parent().prev().find('a').trigger('click');
            return false;
         }
      });
   });
   $('.big-rotator .ar-right').click(function(){
      /*
      при клике на стрелку большой картинки,
      ищем ее в карусели, и если она вне видимости, то крутим карусель на одну позицию
      */
      var big_src = $('#big_img').attr('src');
      $('.in-page #carousel li a').each(function(){
         if( ( $(this).attr('big_src') == big_src ) ) {
            $(this).parent().next().find('a').trigger('click');
            return false;
         }
      });
      return false;
   });
   // скрываем текст
   $('#rotator_text > div').not(':first').hide();
   
   
   // вакансии
   $('#vacancy_list > li:not(.vacancy) > a').click(function(){
      $(this).parent().hide().next().slideDown();
      return false;
   });
   $('#vacancy_list > li.vacancy div.craft > a').click(function(){
      var $vacancy = $(this).parent().parent();
      $vacancy.slideUp(function(){
         $vacancy.prev().show();
      });
      return false;
   });
   
   // меню на главной
   $('.smart-in > ul > li > a').click(function(){
      var $a = $(this);
      if( $a.parent().hasClass('activate') ) {
         return true;
      } else {
         $('.smart-in > ul > li > ul').slideUp(
         /* function(){
            $('.smart-in > ul > li').removeClass('activate');
            $a.parent().addClass('activate').find('ul').slideDown();
         } */
         );
         // сделал так, потому что все пункты кроме первого откырвались по 2 раза
         setTimeout(
            function(){
               // d(1)
               $('.smart-in > ul > li').removeClass('activate');
               $a.parent().addClass('activate').find('ul').slideDown();
            }, 600
         );
         
         return false;
      }//if
   }).eq(0).trigger('click');
   
   $('.calc-table tr td .i').hover(function(){
      $(this).find('div').show();
   },function(){
      $(this).find('div').hide();
   });
   
});
/* для получения названий полей формы
$('[name^=multime]').each(function(){console.log(this.name)})  
*/
