// обертка элементов DOM джавой в соответствии с псевдоклассами CSS  


function js_css_events(){
  var TimeforUserPopup = new Array();
  var TimeforHelpPopup = new Array();
  var TimeforLoginCheck = false;



//----------------------------------------------------------------------------------------------------------------------
	// общий вертикальный отступ
	function get_vertical_padding(element)
	{	
		var vertical_padding = parseInt(element.css('padding-top')) + parseInt(element.css('padding-bottom'));
		return vertical_padding;
	} // get_vertical_padding
	
	// общий горизонтальный отступ
	function get_horizontal_padding(element)
	{	
		var horizontal_padding = parseInt(element.css('padding-right')) + parseInt(element.css('padding-left'));
		return horizontal_padding;
	} // get_horizontal_padding
	
  // берем координаты цента объекта
	function get_element_center_coordinates(element)
	{	
		var center_of_element = new Array();
		var element_top_left_coords = element.offset();
		center_of_element[0] = element_top_left_coords.left + Math.round((element.width()  + get_horizontal_padding(element)) / 2);
    center_of_element[1] = element_top_left_coords.top  + Math.round((element.height() + get_vertical_padding(element)) / 2);
		return center_of_element;
	}	// get_element_center_coordinates
	
	// позиционируем объект
	function position(element,x,y)
	{
		//alert(element.css('display')+' '+element.css('left'));
    element.stop(true, true);		
		element.css("position","absolute");
    //element.css("z-index",32000);
		element.css("top",y);
		element.css("left",x);
		element.css("width",'200px');
		element.css("height",'200px');
	  element.show();
	  
	  //alert(element.css('display')+' '+element.css('left'));
	  
	  
	} // position

  // расчет положения ТТ
	function calculatePosition(element_to_add_tooltip, tooltip, dX, dY )
	{
		var position = new Array();		// x=[0], y=[1]		
		var element_center = get_element_center_coordinates(element_to_add_tooltip);
		position[0] = element_center[0] + dX;
		position[1] = element_center[1] + dY;		
		return position;
	}

  // всплывающие подсказки (?)
  $('.js_up_hint').each(function(){
    var word = $(this).attr('word');
    var parameters = new Object();
    var cur_hint = $(this);
    parameters['word']  = word;         
    
	if(!$('#pixTip_' + $(cur_hint).attr("id")).length){
		$.post('/ajax/up_hint.php',parameters,function(response,ans_code){  
	        var hint = response;
	        // всплывалка справа
	        var options 		= { tooltipClass: 'pixtooltip',	        // класс
	                          	deltaX: 			-226,									  // смещение по Х
	                          	deltaY: 			-20, 									  // смещение по Y
	                          	html:				  '<div class="b-tooltip b2-tooltip"><div class="tooltip__content">'+hint+'</div><div class="tooltip__corner"></div></div>'
	                          };
			if($(cur_hint).attr('pp_al') == "right"){
		        options 		= { tooltipClass: 'pixtooltip',	        // класс
		                          	deltaX: 			22,									  // смещение по Х
		                          	deltaY: 			-20, 									  // смещение по Y
		                          	html:				  '<div class="b-tooltip b2-tooltip b-tooltip_left"><div class="tooltip__content">'+hint+'</div><div class="tooltip__corner"></div></div>'
		                          };		
			};
	
	        var pxTooltip 		= $(cur_hint);
	        var uniqueID 		= 'pixTip_' + $(cur_hint).attr("id");
	        jQuery("body").append(jQuery(document.
	                              createElement('div')).
	                              html(options.html).
	                              addClass(options.tooltipClass).
	                              attr("id",uniqueID).
	                              css("display","none"));            
	        $(cur_hint).unbind('mouseenter mouseleave');
			$(cur_hint).hover(
	            function(e) {
	              // всплывание         
	            	var tooltipPosition = calculatePosition(pxTooltip, jQuery("#" + uniqueID), options.deltaX, options.deltaY);
					position(jQuery("#" + uniqueID), tooltipPosition[0], tooltipPosition[1]);
	            },
	            function(e) {
	    					// исчезновение
	    					jQuery("#" + uniqueID).hide();
	            }
	        );          
	
	    });
    }else{
	        var options 		= { tooltipClass: 'pixtooltip',	        // класс
	                          	deltaX: 			-226,									  // смещение по Х
	                          	deltaY: 			-20 									  // смещение по Y
	                          
	                          };
			if($(cur_hint).attr('pp_al') == "right"){
		        options 		= { tooltipClass: 'pixtooltip',	        // класс
		                          	deltaX: 			22,									  // смещение по Х
		                          	deltaY: 			-20 									  // смещение по Y
		                          	
		                          };		
			};
	
	        var pxTooltip 		= $(cur_hint);
	        var uniqueID 		= 'pixTip_' + $(cur_hint).attr("id");          
	        $(cur_hint).unbind('mouseenter mouseleave');
			$(cur_hint).hover(
	            function(e) {
	              // всплывание         
	            	var tooltipPosition = calculatePosition(pxTooltip, jQuery("#" + uniqueID), options.deltaX, options.deltaY);
					position(jQuery("#" + uniqueID), tooltipPosition[0], tooltipPosition[1]);
	            },
	            function(e) {
	    					// исчезновение
	    					jQuery("#" + uniqueID).hide();
	            }
	        );  	
	}
  }); 
  
  //------------------ tags list ------------------------
  // функция удаления тега
  
  // кнопка добавить
  $('.js-mark_call').unbind('click').bind('click',function(){
    $('.js-mark_fild').show(); 
    $('.js-mark_fild input').val('');
    return false;
  });  
  
  // кнопка отмена
  $('.js_tag_list_cancel').unbind('click').bind('click',function(){
    $('.js-mark_fild').hide();  
    return false;
  });  
  
  // удаление тега
  $('.js_tag_list_del').unbind('click').bind('click',function(){
    // обновляем имя поля
    var ssn = $('#storage_specialization_id').attr('name');
    $('#storage_specialization_id').attr('name',ssn.substr(0,ssn.length-5)+':list');//
    //
    var answ = '';
    var tag_id;
    // удаляемый тег
    tag_id = $(this).attr('tag_id');
    // составляем строку из оставшихся тегов
    $('.js_tag_list a.del').each(function(){
      cur_tag_id = $(this).attr('tag_id');
      if(cur_tag_id != tag_id){
        if(answ != '') answ += ';';
        answ += cur_tag_id;
      }
    });   
    // сохраняем значение
    $('.js_tag_list').children('INPUT').val(answ);
    // удаление тега
    $(this).parent().parent().remove(); 
    return false;
  });
  
  // добавление тега 
  $('.js_tag_list_add').unbind('click').bind('click',function(){
    // обновляем имя поля
    var ssn = $('#storage_specialization_id').attr('name');
    $('#storage_specialization_id').attr('name',ssn.substr(0,ssn.length-5)+':list');//
    // берем название тега
    var new_tag = $('#x5839034738438').val();
    // узнаем ид тега
    var parameters = new Object();
    parameters['term']  = new_tag;
    parameters['group'] = 'specialization';  
    parameters['cmd']   = 'add_term';          
    $.post('/ajax/terms.php',parameters,function(response,ans_code){
        var new_tag_id = response;
      // выводим тег    
        if($('div.js_tag_list a.del[tag_id='+new_tag+']').size() == 0){
          // добавляем в список
          $('div.js_tag_list div.mark').html($('div.js_tag_list div.mark').html()+" <span class='tl_m'>"+new_tag+"<span class='b-run b-run_line'><a class='del js_tag_list_del' tag_id='"+new_tag_id+"' href='#' title='Удалить'>Удалить<span></span></a></span></span>");
          $('.js-mark_fild').hide();    
          // обновляем поле-хранилище
          var answ = '';
          // составляем строку из оставшихся тегов
          $('.js_tag_list a.del').each(function(){
            cur_tag_id = $(this).attr('tag_id');
            if(answ != '') answ += ';';
            answ += cur_tag_id;
          });   
          // сохраняем значение
          $('.js_tag_list').children('INPUT').val(answ);
        }   
      // вешаем событие
        $('.js_tag_list_del').unbind('click').bind('click',function(){
          var answ = '';
          var tag_id;
          // удаляемый тег
          tag_id = $(this).attr('tag_id');
          // составляем строку из оставшихся тегов
          $('.js_tag_list a.del').each(function(){
            cur_tag_id = $(this).attr('tag_id');
            if(cur_tag_id != tag_id){
              if(answ != '') answ += ';';
              answ += cur_tag_id;
            }
          });        
          // сохраняем значение
          $('.js_tag_list').children('INPUT').val(answ);
          // удаление тега
          $(this).parent().parent().remove();   
          return false;     
        });            
    });
    return false;
  });

  //------------------------------------------------------
  // рейтинг (звездочки) 
  $('span.assessment ins').unbind('click').bind('click', function () {
    //alert($(this).attr('rat'));
    var parameters = new Object();
    parameters['obj']=$(this).parent().attr('user_id');
    parameters['rating']=$(this).attr('rat');
    parameters['cmd'] = 'add_rating';          
    $.post('/ajax/rating.php',parameters,function(response,ans_code){     
        if(response){  
          if(response == 'none') return;       
          var qwe = eval('(' + response + ')');
          //alert($('.js_profile_rating_val:first').html());
          $('.js_profile_rating_val').html(qwe['m_rating']);
          $('.js_profile_rating_people_count').html('('+qwe['count_people']+' голосов)');
          //alert(qwe['m_rating']);  
          $('span.assessment ins').each(function(){
            $(this).addClass('on');
            if(Math.round(qwe['m_rating'])<$(this).attr('rat')){
              $(this).removeClass('on');
            }
          });                  
        }else{
          var qwe = new Array();
          alert('Голосовать могут только зарегистрированные пользователи.\nЗарегистрируйтесь и получите возможность изменять рейтинг.');
        }        
    });  
  });
    
  //------------------------------------------------------
  // форма редактирования участия в проектах
  $('.js_parcitipation_upd').unbind('click').bind('click', function () {
    var parameters = new Object();
    parameters['part_id']=$(this).attr('part_id');
    parameters['ajax_id']=$(this).attr('ajax_id');
    parameters['cmd'] = 'part_upd_form';          
    $.post('/ajax/ajax.php',parameters,function(response,ans_code){      
        $('#popup_participation_upd').html(response);
        show_popup('popup_participation_upd');
    });
    return false;
  });
  
  $('.js_user_popup').each(function(){
    var user_id = $(this).attr('user_id');
    var parameters = new Object();
    var cur_popup = $(this);
    parameters['user_id']  = user_id;

	if($('#pixTip_' + $(cur_popup).attr("id")).length == 0){        
		$.post('/ajax/up_user.php',parameters,function(response,ans_code){
	        var hint = response;
	  
	        var options 		= { tooltipClass: 'pixtooltip',	        // класс
	                          	deltaX: 			-42,									  // смещение по Х
	                          	deltaY: 			50, 									  // смещение по Y
	                          	html:				  hint
	                          };
	        var pxTooltip 		= $(cur_popup);
	        var uniqueID 		= 'pixTip_' + $(cur_popup).attr("id");
	        jQuery("body").append(jQuery(document.createElement('div')).
	                                              html(options.html).
	                                              addClass(options.tooltipClass).
	                                              attr("id",uniqueID).
	                                              css("display","none"));
	                                                        
	        var tooltipPosition = calculatePosition(pxTooltip, jQuery("#" + uniqueID), options.deltaX, options.deltaY);  
	        $(cur_popup).unbind('mouseenter mouseleave');
			$(cur_popup).hover(
	            function(e) {
	              // всплывание
	            	position(jQuery("#" + uniqueID), tooltipPosition[0], tooltipPosition[1]);
	            },
	            function(e) {
	    					// исчезновение
	    					jQuery("#" + uniqueID).hide();
	            }
	        );          
	
	    });     
	    
    }else{ // если контент уже загружен


	  
	        var options 		= {
	                          	deltaX: 			-42,									  // смещение по Х
	                          	deltaY: 			50 									  // смещение по Y
	                    
	                          };
	        var pxTooltip 		= $(cur_popup);
	        var uniqueID 		= 'pixTip_' + $(cur_popup).attr("id");
	        /*
	        jQuery("body").append(jQuery(document.createElement('div')).
	                                              html(options.html).
	                                              addClass(options.tooltipClass).
	                                              attr("id",uniqueID).
	                                              css("display","none"));
	                                                                 */
	        var tooltipPosition = calculatePosition(pxTooltip, jQuery("#" + uniqueID), options.deltaX, options.deltaY);  
	        $(cur_popup).unbind('mouseenter mouseleave');
			$(cur_popup).hover(
	            function(e) {
	              // всплывание
	            	position(jQuery("#" + uniqueID), tooltipPosition[0], tooltipPosition[1]);
	            },
	            function(e) {
					// исчезновение
					jQuery("#" + uniqueID).hide();
	            }
	        );    

  
	} 


  }); 
/* 
  // попап участие в проэктах
  $('.js_user_popup').bind('mouseover',function(){
    var user_id;
    user_id = $(this).attr('user_id');
    TimeforUserPopup[user_id] = window.setTimeout(function(){$('#user_popup_'+user_id).show();}, 500);
  });
  
  $('.js_user_popup').bind('mouseout',function(){
    var user_id;
    user_id = $(this).attr('user_id');
    $('#user_popup_'+user_id).hide();
    window.clearTimeout(TimeforUserPopup[user_id]);
  });
*/  
  // инициализация календарика
  $('.js_init_datepicker').each(function(){ 
    $('.filter_date').attachDatepicker({yearRange: '1900:'+$(this).attr('cur_year')});
  });
  
  // клин по иконке календарика
  $('.calendar').unbind('click').bind('click',
   function (event){
    $(this).parents('DIV:first').children('INPUT:first').focus();
    return false;
   }
  );
  
  // скрытие попап
  $('.js_alert_disable').unbind('click').bind('click',
   function (event){
    hide_popup('popup_participation_add');
    return false;
   }
  );
  
  // оживление всех левых кнопок submit
  $('.js_href_alive').unbind('click').bind('click',
   function (event){
    window.location = $(this).attr('href');
   }
  );

  // очистка формы
  $('.js_clear_form_part').unbind('click').bind('click',
   function (event){ 

	$(this).parents('form:first input[type=text]').val('');
	$(this).parents('form:first textarea').val('');    
    
    return false;
   }
  );


    // универсальная форма на подтверждение submit 
    $('.js_submit_confirm').each(
    function (){       
        this.validate = function(){
          // пропускаем валидацию если происходит перегрузка формы из-за выпадающих селектов
          return confirm($(this).attr('confirm_msg'));
        }
    });
    






  // отмена
  $('.js_not_submit').unbind('click').bind('click',
   function (event){
    $('.js-alert').hide();
    return false;
   }
  );
    
  // оживление всех левых кнопок submit
  $('.js_submit').unbind('click').bind('click',
   function (event){
    $(this).parents('FORM:first').submit();
    return false;
   }
  );
  
  // scroll вверх 
  $('.js_scroll_top').unbind('click').bind('click',
   function (event){
    $(window).scrollTop(0);
    return false;
   }
  );

  
  // внешняя валидация 
  $('.js_reg_validate').each(     
   function (){       
    this.validate = function(){
    
      // пропускаем валидацию если происходит перегрузка формы из-за выпадающих селектов
      if($(this).find('INPUT[name=cmd]').val() == 'step1refresh') return true;
    

      // проверяем выбраны ли страна, регион, город 
      if($(this).find('SELECT[name=reg_person_country]').val()==0){
        alert('Не выбрана страна');
        return false;      
      }

      if($(this).find('SELECT[name=reg_person_region]').val()==0){
        alert('Не выбран регион');
        return false;      
      }

      if($(this).find('SELECT[name=reg_person_city]').val()==0){
        alert('Не выбран город');
        return false;      
      }
    
      // проверяем на совпадение паролей
      if($(this).find('INPUT[name=reg_person_password]').val()!=$(this).find('INPUT[name=reg_person_password2]').val()){
        alert('Пароль и его подтверждение не совпадают');
        return false;
      }
      
      if($(this).find('INPUT[name=rest_password]').val()!=$(this).find('INPUT[name=rest_password2]').val()){
        alert('Пароль и его подтверждение не совпадают');
        return false;
      }
	        
      // проверяем длину паролей и присутствие кирилических букв
      var password_length_incorrect = false;
      $(this).find('INPUT[name=reg_person_password], INPUT[name=rest_password]').each(function(){
        if(this.value.length <5){
          alert('Длина пароля не может быть меньше 5 символов');
          password_length_incorrect = true;
        }
        if(this.value.length >20){
          alert('Длина пароля не может быть больше 20 символов');
          password_length_incorrect = true;
        }
        
        if(!check_type_of_data(this.value,'not_cyrilic')) {
          alert('Пароль не должен содержать кирилических букв. Возможно при наборе был переключен язык.');
          password_length_incorrect = true;
        }
              
      });
      
      // проверяем на стандартные проверки
      if(!js_not_empty(this))   return false;
      if(!js_checked(this))     return false;
      if(!agreement(this))     return false;
      if(!js_valid_email(this)) return false;  
	  
	      
      if(password_length_incorrect) return false;      
      
      return true;
    
    }
   }
  );
  
  // валидация профайла модели
  $('.js_mprof_validate').each(
   function (){
    this.validate = function(){
    
      // пропускаем валидацию если происходит перегрузка формы из-за выпадающих селектов
      if($(this).find('INPUT[name=cmd]').val() == 'step1refresh') return true;

      if($(this).find('INPUT[name=change_password]').val()!=$(this).find('INPUT[name=change_password2]').val()){
        alert('Пароль и его подтверждение не совпадают');
        return false;
      }
      
      // проверяем длину паролей и присутствие кирилических букв
      var password_length_incorrect = false;      // смена
      if($(this).find('INPUT[name=change_password]').val() != ''){
	      $(this).find('INPUT[name=change_password]').each(function(){
	        if(this.value.length <5){
	          alert('Длина пароля не может быть меньше 5 символов');
	          password_length_incorrect = true; return false; 
	        }
	        if(this.value.length >20){
	          alert('Длина пароля не может быть больше 20 символов');
	          password_length_incorrect = true; return false; 
	        }
	        
	        if(!check_type_of_data(this.value,'not_cyrilic')) {
	          alert('Пароль не должен содержать кирилических букв. Возможно при наборе был переключен язык.');
	          password_length_incorrect = true; return false; 
	        }
	              
	      });	  
	  }
	  if(password_length_incorrect) return false; 
	        
      // проверяем на стандартные проверки
      if(!js_not_interval(this))   return false;
      return true;
    
    }
   }
  );
  
  
  // submit reload по селекту стран и регионов 
  
  $('.js_region_select').change(function () {
    
    var form  = $(this).parents('FORM:first'); 
    form.find('INPUT[name=cmd]').val($(this).attr('cmd'));
    form.find('SELECT[name='+$(this).attr('entity')+'city]').val('0');
    form.find('SELECT[name='+$(this).attr('entity')+'city]').attr('disabled','true');
    form.submit();
  });  
  
  $('.js_country_select').change(function () {
    
    var form  = $(this).parents('FORM:first'); 
    form.find('INPUT[name=cmd]').val($(this).attr('cmd'));
    form.find('SELECT[name='+$(this).attr('entity')+'city]').val('0');
    form.find('SELECT[name='+$(this).attr('entity')+'city]').attr('disabled','true');
    form.find('SELECT[name='+$(this).attr('entity')+'region]').val('0');
    form.find('SELECT[name='+$(this).attr('entity')+'region]').attr('disabled','true');    
    form.submit();
  });

  // 
  $('.js_login_search').keyup(function () {
    
    var parameters = new Object();
    parameters['login']=$(this).val();
    
    if(TimeforLoginCheck) {
      window.clearTimeout(TimeforLoginCheck);
    } // if
    
    TimeforLoginCheck = window.setTimeout(
      function(){
          $.post('/ajax/check_login.php',parameters,function(response,ans_code){
        $('#login_msg').html(response);
        TimeforLoginCheck = false;
        });
      } ,1000); 
  });

  // скрываем появляем поле фамилия для модельного агенства
  function register_change_profession(){ 
     if(this.value==6) {
        $('#lastname_field').hide();
        $('#gender_field').hide();
        $('#name_field_label').html('Название<sup>*</sup>');
        $('#reg_person_firstname').attr('title','Название');
        $('#reg_person_firstname').attr('maxlength',50)
     }
     else{
        $('#lastname_field').show();
        $('#gender_field').show();
        $('#name_field_label').html('Имя<sup>*</sup>');
        $('#reg_person_firstname').attr('title','Имя');
        $('#reg_person_firstname').val( $('#reg_person_firstname').val().substring(0,14) ).attr('maxlength',14)
     }  
    }
  $(".js_agency_selector")
    .unbind('click').bind('click',register_change_profession)
    .unbind('change').bind('change',register_change_profession)
    .unbind('keyup').bind('keyup',register_change_profession)

  // корректировка полей модельного агенства при перезагрузке формы после выбора страны/региона     
  $(".js_agency_selector").each( 
      function(){
        if(this.value==6){
	        $('#lastname_field').hide();
	        $('#gender_field').hide();
	        $('#name_field_label').html('Название<sup>*</sup>');
	        $('#reg_person_firstname').attr('title','Название')
        }else{
			$('#reg_person_firstname').attr('title','Имя')
		} 
      });

  $('.js_login_search').unbind('blur').bind('blur',
   function (event){
    var parameters = new Object();
    parameters['login']=$(this).val();
    parameters['cmd']='reserve';
    $.post('/ajax/check_login.php',parameters,function(response,ans_code){});    
   }
  );
  
  // обновляем поле с адресом.pix.ru, если логин не пустой 
  $('.js_login_search').not('[value=""]').each( 
      function(){
        var parameters = new Object();
        parameters['login']=this.value;  
        $.post('/ajax/check_login.php',parameters,
          function(response,ans_code){
            $('#login_msg').html(response); 
          } // function
        ); // post
     } // function
   ); // each
   
   
  
  
} // function 

///////////////////////////////////////////////////////////////////////////////
/////////   атомарные функции валидации  //////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
function js_not_interval(f){ // проверка на диапазон значений
      
      var exitStatus = false;
      $(f).find('.js_not_interval').each(
          function(){
	      		var minval = parseInt($(this).attr('min_val'));
				var maxval = parseInt($(this).attr('max_val'));    
				var val = parseInt($(this).val());
			if(val){					
              if(val < minval || val > maxval ){
                alert('Поле "'+ $(this).attr('title') + '" заполнено неверно. Допустимые знавения от "'+minval+'" до "'+maxval+'"');
                this.focus();
                exitStatus = true;
                return false;
              } // if
			} 
          } // function
      );
      if(exitStatus) return false;
      return true;
} // function

function js_not_empty(f){ // проверка на пустые значения
      
      var exitStatus = false;
      $(f).find('.js_not_empty').each(
          function(){
              if( $(this).val()==''){
                alert('Поле "'+ $(this).attr('title') + '" не заполнено');
                this.focus();
                exitStatus = true;
                return false;
              } // if 
          } // function
      );
      if(exitStatus) return false;
      return true;
} // function


function js_checked(f){ // проверка на выбор галочки
      var exitStatus = false;
      $(f).find('.js_checked').each(
          function(){
              if(!this.checked){
                alert('Поле "'+ $(this).attr('title') + '" не заполнено');
                this.focus();
                exitStatus = true;
                return false;
              } // if 
          } // function
      );
      if(exitStatus) return false;
      return true;
} // function

function agreement(f){ // проверка на выбор галочки
      var exitStatus = false;
      $(f).find('#agreement').each(
          function(){
              if(!this.checked){
                alert('Вы не согласились с условиями соглашения');
                this.focus();
                exitStatus = true;
                return false;
              } // if 
          } // function
      );
      if(exitStatus) return false;
      return true;
} // function

function js_valid_email(f){ // проверка на адекватность емайла 
      var exitStatus = false;
      $(f).find('.js_valid_email').each(
          function(){
              
            mailString = $(this).val(); 
            re = /(^[\.])|(^[\-])|(^[\@])/; // убрал из начала   ([\.\-_@][\.\-_@])|
            result = re.test(mailString);
            //alert('['+result+']');
            if(!result)     
            {
                re = /^[\w\-\.]+@[\w\-\.]+\.[a-zA-Z]{2,4}$/;
                result = re.test(mailString);

                if(!result){ 
                  alert ('Введен неверный email');
                  this.focus();
                  exitStatus = true;
                  
                  return false;
                } // if 
                   
            } // if 
            else {   
                  alert ('Введен неверный email');
                  this.focus();
                  exitStatus = true;
                  return false;
             } // else
              
          } // function
      );
      if(exitStatus) return false;
      return true;
} // function

//////////////////////// валидация ввода по типу данных ////////////////////////

function check_type_of_data(_this,template){    //input content checker
    if(!_this) return true; // если пусто или неопределено то не делаем ничего
    
    switch(template){
    case 'numeric':   var reg = /[^0-9\ ]/; break;
    case 'cyrilic':   var reg = /[^а-яёА-ЯЁ\ ]/; break;
    case 'not_cyrilic':   var reg = /[а-яёА-ЯЁ\ ]/; break;
    case 'cyrilic_numeric_symbols':   var reg = /[^0-9а-яёА-ЯЁ\ \-\.\,\"\']/; break;
    case 'phone':   var reg = /[^0-9\-\+\(\)\ ]/; break;
    case 'cyrilic_numeric':   var reg = /[^0-9а-яёА-ЯЁ\ ]/; break;
    case 'latin':   var reg = /[^0-9a-zA-Z\$\"\ \-]/; break;
    case 'cyrilic_latin':   var reg = /[^а-яёА-ЯЁa-zA-Z\ ]/; break;
    case 'cyrilic_latin_numeric':   var reg = /[^0-9а-яёА-ЯЁa-zA-Z\ ]/; break;
    }
    var col=_this;
    if  (col.search(reg)==-1 || col==''){  //проверяем введенное значение
        return true;
    }//if 
    else  {
        return false;
    };
    
}//function


////////////////////////////////////////////////////////////////////////////////
//               навешиваем обработчики событий по псевдоклассам              //
////////////////////////////////////////////////////////////////////////////////

js_css_events();
