$(function()
 {
  var content = $('#content');
  var posttitle = $('textarea[name=posttitle]',content);
  var posttext  = $('textarea[name=posttext]',content);
  var addarea = posttitle.add(posttext);
  /*---------------------------------------------------------------------------------------*/
  addarea.blur( function() {
      var name = $(this).attr('name');
      var arealen = $('#len'+name);
      var areamsg = $('#msg'+name);
      var lenbox  = $('#lenbox'+name);
      var MsgText ='';
      var ThisText = $(this).val();
      var MsgFlag = false;

      ThisText = $.trim(ThisText);
      ThisText = ThisText.replace(/ +/g,' ');
      ThisText = ThisText.replace(/([а-яА-Я])\s*(\.|\,|\;|:|!|\?)\s*([\dа-яА-Я])/ig, "$1$2 $3"); // ставим пробелы после точек и запятых
      ThisText = ThisText.replace(/[\n\r][\n\r]+/g,"\n\n");

      $(this).val(ThisText);

      // подозрения на спам
      //alert( ThisText.test(/сайт\s.*?\s/ig) );

      // предупреждающие сообщения

      // удаление сайта
      var text1 = ThisText;
      ThisText = ' '+ThisText+' ';

      ThisText = ThisText.replace(/сайт\s.*?\s/ig,'');
      ThisText = ThisText.replace(/сайт:\s.*?\s/ig,'');
      ThisText = ThisText.replace(/http.*?\s/ig,'');
      ThisText = ThisText.replace(/www.*?\s/ig,'');
      ThisText = ThisText.replace(/[\s,;][-\.0-9a-zA-Z]+\.(ru|com|net|biz|su|info|org)\S*[\s\.,;:]/ig,' ');
      ThisText =  $.trim(  ThisText );

      if( text1!=ThisText)
        {
         MsgFlag = true;
         MsgText += '<li>Указывать веб сайт в объявлении запрещено</li>';
         $(this).val(ThisText);
        }
      if( '' == ThisText)
        {
         MsgFlag = true;
         MsgText += '<li>Поле не заполнено</li>';
        }
      else
      if( ThisText == ThisText.toUpperCase() )
        {
         MsgFlag = true;
         MsgText += '<li>Нельзя набирать текст полностью в верхнем регистре (БОЛЬШИМИ буквами)</li>';
         $(this).val( ThisText.toLowerCase() )
        }
      if( ThisText.length > $(this).attr('max') )
        {
         lenbox.show();
         MsgFlag = true;
         MsgText += '<li>Превышен лимит длины сообщения</li>';
        }
      else
        {
         lenbox.hide();
        }
     var ttlc = ThisText.toLowerCase();
     if( 'продам'==ttlc || 'куплю'==ttlc || 'продаю'==ttlc || 'меняю'==ttlc || 'обменяю'==ttlc || 'сдам'==ttlc || 'сдаю'==ttlc || 'срочно продаю'==ttlc || 'срочно продам'==ttlc || 'срочно куплю'==ttlc || 'срочно'==ttlc || 'сниму'==ttlc || 'работа'==ttlc)
        {
         MsgFlag = true;
         MsgText += '<li>Что "'+ThisText+'"?<br>Попробуйте написать чуть подробнее</li>';
        }
     if( 'продажа'==ttlc || 'покупка'==ttlc || 'аренда'==ttlc || 'обмен'==ttlc)
        {
         MsgFlag = true;
         MsgText += '<li>"'+ThisText+'" чего?<br>Попробуйте написать чуть подробнее</li>';
        }
     if( 'ищу человека'==ttlc || 'поиск человека'==ttlc || 'поиск'==ttlc || 'ищу'==ttlc)
        {
         MsgFlag = true;
         MsgText += '<li>"'+ThisText+'" кого именно?<br>Попробуйте написать чуть подробнее</li>';
        }
      if( ''==MsgText)
        {
         areamsg.hide("slow");
        }
      else
        {
         MsgText = '<ul>'+MsgText+'</ul>';
        }
      areamsg.html( MsgText );
      if( MsgFlag && ''!=MsgText)
        {
         areamsg.fadeIn("slow");
        }
      arealen.text( ThisText.length );
   });
  /*---------------------------------------------------------------------------------------*/
 var arealen;
 var lenbox;
 var areamsg;
 addarea.keydown( function() {
      arealen = $('#len'+$(this).attr('name'));
      areamsg = $('#msg'+$(this).attr('name')); //arealen.next('.areamsg');
      lenbox  = $('#lenbox'+$(this).attr('name'));

      var MsgText ='';
      var ThisText = $.trim( $(this).val() );
          ThisText = ThisText.replace(/ +/g,' ');
      var len = ThisText.length;
      // вывод предупреждения
      if( ThisText.length > $(this).attr('max') )
        {
         MsgText = '<ul><li>Превышен лимит длины сообщения</li></ul>';
         areamsg.html( MsgText );
         areamsg.fadeIn("slow", function() { lenbox.show();  });
        }
      else
        {
         areamsg.hide("slow", function() { lenbox.hide();  });
         areamsg.html( '' );
        }
      arealen.text( len );
   })
  .keyup( function() {  $(this).keydown(); });
  /*---------------------------------------------------------------------------------------*/
  /*---------------------------------------------------------------------------------------*/
  $('input[name=addpostb]',content).focus(function(){
    if( $('input[name=phone]').size() > 0 )
          {
           var phone = $('input[name=phone]');
           var mail = $('input[name=mail]');
           if(''==$.trim(phone.val()) && ''==$.trim(mail.val()))
              {
               $('#mailphone').addClass('red');
               phone.addClass('red');
               mail.addClass('red');
              }
           else
              {
               $('#mailphone').removeClass('red');
               phone.removeClass('red');
               mail.removeClass('red');
              }
          }

    if(''==$.trim( posttitle.val() ) || ''==$.trim( posttext.val() ))
       $('#tareacheck').addClass('red');
    else
       $('#tareacheck').removeClass('red');

    if( ''==$.trim( $('input[name=reantispamimg]').val() ) )
       {
        $('input[name=reantispamimg]').addClass('red');
        $('#nospimg').addClass('red');
       }
    else
       {
        $('input[name=reantispamimg]').removeClass('red');
        $('#nospimg').removeClass('red');
       }
  });

  $('input[name=addpostb]').hover(function(){
    $(this).focus();
  },function(){
    ;
  });
  /*---------------------------------------------------------------------------------------*/
  posttitle.focus();
  /*---------------------------------------------------------------------------------------*/
  $('input[name=addpostb]').click(function(){
   $(this).get(0).disabled=true;
   $('#idaddpost').submit();
   return false;
  });
  /*---------------------------------------------------------------------------------------*/
 function CheckInp()
      {
       var ThisText = $(this).val();
       ThisText = $.trim(ThisText);
       ThisText = ThisText.replace(/ +/g,' ');
       ThisText = ThisText.replace(/([а-яА-Я])\s*(\.|\,|\;|:|!|\?)\s*([\dа-яА-Я])/ig, "$1$2 $3");
       var text1 = ThisText;
       ThisText = ' '+ThisText+' ';

       ThisText = ThisText.replace(/сайт\s.*?\s/ig,'');
       ThisText = ThisText.replace(/сайт:\s.*?\s/ig,'');
       ThisText = ThisText.replace(/http.*?\s/ig,'');
       ThisText = ThisText.replace(/www.*?\s/ig,'');
       ThisText = ThisText.replace(/[\s,;][-\.0-9a-zA-Z]+\.(ru|com|net|biz|su|info|org)\S*[\s\.,;:]/ig,' ');
       ThisText = ThisText.replace(/ +/g,' ');
       ThisText =  $.trim(  ThisText );

       $(this).val(ThisText);
     }
 $('input[name=phone],input[name=repname],input[name=mail]',content).bind('blur', CheckInp);
  /*---------------------------------------------------------------------------------------*/
 $('input[name=icq]',content).blur(function(){
   var ThisText = $(this).val();
   ThisText = ThisText.replace(/[^-\d]/ig, "");
   $(this).val(ThisText);
  });
 $('input[name=reantispamimg]',content).blur(function(){
   var ThisText = $(this).val();
   ThisText = ThisText.replace(/\D/ig, '');
   $(this).val(ThisText);
  });
  /*---------------------------------------------------------------------------------------*/
  // далее для выпаадающих списков
  /*---------------------------------------------------------------------------------------*/
    var selsection = $('#selsection');
    var selrubric  = $('#selrubric');
    var form       = $('#idaddpost');
    var imgs       = $('input[type=file]')
    //--------------------------------------------------------------------------
    $.extend({
    ssel:'',
    srubr:selrubric.val(),
    url:{set:false}
    });
    //--------------------------------------------------------------------------
    function parseurl(url)
    {
     var reg = /http:\/\/((?:[-.\w]+\/)+)([-\w]+)\.([\w]+)/i;
     var arr=reg.exec(url);
     return (null == arr)?{}:{set:true,base:arr[1],file:arr[2],fext:arr[3]};
    }
    //--------------------------------------------------------------------------
    selrubric.change(function()
      {
        var therubr = $(this).val();
        var obj = selsection.get(0);
        obj.options.length = 0;

        var k=0;
        var seld=0;
        $.each(sarr, function(i, n)
        {
            if(n.r == therubr)
              {
               if(ssel == n.v && $.srubr == n.r)
                  seld = k;

               obj.options[k] = new Option(n.t,n.v);
               obj.options[k++].i = n.i;
              }
        });
        obj.options[seld].selected = true;
        var imgcnt = obj.options[seld].i;

        if(!$.url.set)
           $.url = parseurl(form.get(0).action);

        var file = $('option[value='+therubr+']',this).attr('f');
        var sfile = selsection.val();

        file +='-'+sfile;
        form.get(0).action = 'http://'+$.url.base + file + '.' + $.url.fext;
        k=0;
        imgs.each(function(i){
           this.disabled = (imgcnt>k++)?false:true;
          });

    }).change();
    //--------------------------------------------------------------------------
    selsection.change(function()
      {
        var file = $('option[value='+selrubric.val()+']',selrubric).attr('f');
        var sfile = $(this).val();

        if(!$.url.set)
           $.url = parseurl(form.get(0).action);

        file +='-'+sfile;

        form.get(0).action = 'http://'+$.url.base + file + '.' + $.url.fext;

        var obj   = $(this).get(0);
        var k = 0;
        var imgcnt = obj.options[obj.selectedIndex].i;
        imgs.each(function(i){
           this.disabled = (imgcnt>k++)?false:true;
          });
    });
    //--------------------------------------------------------------------------
   // Проверка орфографии
  var speller = new Speller({ url:"/js/spell", lang:"ru", options:(Speller.IGNORE_URLS+Speller.IGNORE_DIGITS+Speller.FIND_REPEAT+Speller.IGNORE_LATIN) });
  $('#spell',content).click(function(){
    speller.check([ posttitle.get(0), posttext.get(0) ]);
    return false;
  });
  /*---------------------------------------------------------------------------------------*/

})