function fill_the_input(){

    alert('Заполните поле "'+this.title+'"')
    this.focus();

} // function fill_the_input

// счетчик форм
var forms_cnt = 0;
var disabled_elements = new Array();
var response_waiting = false;

  // зменить на processable_form
  //   ajax_id 
  //   parent_selector

// ajax обертывалка
function set_form_submit( processable_form ){
  
   js_css_events();
//   ajax_layer_init();

  while ( disabled_elements.length ){$(disabled_elements.pop()).removeAttr('disabled');}
  //var parent_selector = ajax_id ? ajax_id : '[id^=ajax_]';   
  
  // уникальный начальный url страницы  
  var page_url = window.location.toString().match( /^http:\/\/\S*\/(index.php\?id=[\d]*)*/i )[0];

  // обработка ссылк, отправляющих форму
  $('.js_submit',processable_form).attr('onClick',';return false;').unbind('click').bind('click',function(){
  	  if($(this).hasClass('js_clear_cmd')){
  		$('#ecobas_hcmd').attr("value","bay");
	  }	
      $(this).parents('form:first').submit();
      return false;
  });
  
  // обработка обычных ссылок 
  $('a[href^='+page_url+']',processable_form)
  .not(['fs_ajax=new_window'])
  .not('[onClick]')
  .not('[href^=javascript]')
  .not('[noajax]')
  .each(function(){
      
      var current = this;

      if ( $(current).attr('fs_block') )
          $(current).attr('onClick',';return false;')

      $(current).unbind('click.ajax')
        .bind('click.ajax',function(){
          
          if ( $(this).attr('fs_block') ){
              $(this).attr('onClick',';return false;')
              return false;
          } else $(this).removeAttr('onClick')

          // если по ссылке переход в подраздел
          if ( $(this).attr('href').replace(page_url,'').search('/')>0 ){
              $(this).attr('onClick','return true;')
              return true;
          }
            

          // массив параметров
          var href_arr = new Array();

          // параметры в ссылке
          href = current.href.replace('http://','');          
          a_href = href.split('?');
          if ( a_href[1] )
              href_arr.push(a_href[1]);

          // внутренний идентификатор объекта
          href_arr.push('ajax_id='+$(current).parents('[id^=ajax_]').attr('id').substr(5));

          // параметры, измененные url_rewriter'ом
          href_arr.push('ajax_request_uri='+a_href[0].substr(href.search('/')));

          $.get('/ajax/ajax.php?'+href_arr.join('&'),'',function(resp){
              set_form_submit( $(current).parents('[id^=ajax_]').html(resp) );
          });
          return false;
      });
      
  });
  
  // всплывающие окошки
  $('a[fs_ajax=new_window]')
      .attr('onClick','return false;')
      .unbind('click.new_window')
      .bind('click.new_window', function(){
        	wwidth = 800;
        	wheight = 600;
        	wtop = (window.screen.height-wheight)/2;
        	wleft =(window.screen.width-wwidth)/2;
        	if (wwidth < 100){
        		leftM = parseInt((100 - wwidth)/2);
        		rightM = parseInt((100 - wwidth)/2);
        	}else{
        		leftM = 0;
        		rightM = 0;
        	}
        	if (wheight < 100){
        		topM = parseInt((100 - wheight)/2);
        		bottomM = parseInt((100 - wheight)/2);
        	}else{
        		topM = 0;
        		bottomM = 0;
        	}
         	wind=window.open( $(this).attr('href') , 'fs_popup_window', "location=no, menubar=no, scrollbars=1, toolbar=no, status = no, resizable=no, directories=no, width="+wwidth+",left="+wleft+", height="+wheight+", top="+wtop);
         	wind.focus();
    
          return false;
      })

  // обработка форм
  $('form',processable_form).not('[onSubmit]').not(':has(input[name=ajax_id])').not('[action]').not('[wait_ajax=1]').each(function(){
      
      var current_form = this;
      
      forms_cnt++;
      
//       var current_form_id = 'ajaxform_'+forms_cnt;
//       $(current_form).attr('id',current_form_id);

      // восстановление значений селектов
      $('select[def_val]',current_form).each( function(){ $(this).val( $(this).attr('def_val') ); } );
      
      // установка флажков
      $('input[check_val=1]',current_form).each( function(){ $(this).attr('checked','checked'); } );

      
      // кнопки submit в формах
      $('input[type=submit]',current_form).click(function(){
          disabled_elements.push(this);
          $(this).attr('disabled','disabled').parents('form:first').submit();
          return false;
      });
      
      // поля для ввода - фильтры 
      $('._ajax_filter',current_form).change(function(){
          $(this).parents('form:first').submit();
      });

      // если форма лежит в контейнере с зарезервированным id, то
      // дописать в нее скрытое поле с номером объекта 
      if ( $(current_form).parents('[id^=ajax_]').each(function(){
          var new_ajax_id = $(current_form).attr('replace')
          if ( new_ajax_id ) new_ajax_id = new_ajax_id.substr(5);
          if ( !new_ajax_id ) new_ajax_id = this.id.substr(5);
          $('<input type="hidden" name="ajax_id">').val( new_ajax_id ).appendTo(current_form);
      }).size() == 0 ){
          $(current_form).filter('[replace]').each(function(){
              var new_ajax_id = $(current_form).attr('replace')
              if ( new_ajax_id ) new_ajax_id = new_ajax_id.substr(5);
              $('<input type="hidden" name="ajax_id">').val( new_ajax_id ).appendTo(current_form);
          })
      }
      
      // селекты, отправляющие форму при изменении
      $('select.submit',current_form).unbind('change.ajax').bind('change.ajax',function(){
          $(current_form).submit();
          return false;
      });
      
      
      // ссылки отправки формы
      $('a.submit',current_form).unbind('click.ajax').bind('click.ajax',function(){
          $(current_form).submit();
          return false;
      });
      
      
      // подключение обработчика отправки формы
      $(current_form).unbind('submit.ajax').bind('submit.ajax',function(){

          if(response_waiting) return false; // блокировать повторную отправку если выполняется запрос

          externalValidateStatus = true;
          $(current_form).each(function(){
            if(typeof(this.validate)=='function')
            externalValidateStatus = this.validate();
          });
          
          if(!externalValidateStatus){
              while ( disabled_elements.length ){$(disabled_elements.pop()).removeAttr('disabled');}
              return false;
          }
          
          if ( !$(':input[name^=_][value=""]:first',current_form).each( fill_the_input ).size() ){

              var parameters = new Object();
              
              $(':input[name]',current_form).each(function(){
                  current = this;
                  if ( $(this).is('[name^=_]') ) 
                      $(this).attr('name',current.name.substr(1));
                  var value = current.value;
                  
                  // проверка для полей типа "галочка"
                  if ( $(this).attr('type') == 'checkbox' && !$(this).attr('checked') ){ value = ''; }
                  
                  parameters[current.name] = value;
              });
              
              // обработка радиобатонов
              $(':input[type=radio]',current_form).each(function(){
                  current = this;
                  if ( $(this).is('[name^=_]') ) 
                      $(this).attr('name',current.name.substr(1));
                  var value = current.value;
                  if ( $(this).attr('name') && current.checked )                  
                    parameters[current.name] = value;
              });              

              response_waiting = true; //  блокируем повторную отправку

              //$('.js_submit_blocking',current_form).unbind('click'); // зло
              $.post('/ajax/ajax.php',parameters,function(response,ans_code){
              
                  var replace = $(current_form).attr('replace');
                  
                  switch( replace ){
                    case undefined:
                    case '':
                        if(response == 'captcha_error'){
                            alert ('captcha_error');
                        }
                        else {
                            set_form_submit( $(current_form).parents('[id^=ajax_]').html(response) );
                        }
                        break;
                    default:
                        if(response == 'captcha_error'){
                            alert ('captcha_error');
                        }
                        else {
                            // если есть такая функция - запустить  
                            if ( typeof(hide_popup)=='function' ) hide_popup();
                            // заменить контент целевого контейнера
                            $('#'+replace).html(response);
                            // если меняли контейнер ajax-слоя - запестить инициализатор
                            if ( replace.search('ajax_') == 0 ) set_form_submit( $('#'+replace) );
                            
                        }
                        break;
                  } // switch
                  response_waiting = false; // снимаем блокировку повторной отправки формы
              });
      
          } else {
              while ( disabled_elements.length ){$(disabled_elements.pop()).removeAttr('disabled');}
          }
          
          return false;

      });

  });

} // function set_form_submit

$( function(){set_form_submit( '[id^=ajax_]' ); } );




