﻿
function setImgSizes(){
  $('#allEntries .eMessage img:not(.preview)').each( function(){
    var img=this;
//    var cls=img.className;
//    if(cls=="preview") continue;
    if(img.width > 200 && img.width>img.height*4) img.width=200
    else {
      var tr=img; 
      while(tr.nodeName!="TR") tr=tr.parentNode;
      var txt=(tr.firstChild && tr.firstChild.nextSibling ? tr.firstChild.nextSibling.firstChild : null);
      var trH=(txt && txt.offsetHeight?txt.offsetHeight:101); 
      if(trH<80) trH=80; 
      if(trH>120) {
        trH=115;
        txt.style.height=105;
        txt.style.overflow='auto'; 
        $(txt).after('....  <a href='+img.parentNode.href+'>полный текст &raquo;</a>');
      }
      if(img.height > 100 && img.height>trH) img.height=trH;
    }
    if(window.opera) 
      tr.firstChild.width=img.width;
  });
}

function confirmNotReg(){
   return confirm(
'Мы ОЧЕНЬ советуем перед размещением объявления\n' +
'сначала зарегистрироваться (пункт "Регистрация"\n' +
'в горизонтальном меню или на Форме Входа) и затем\n' +
'войти на сайт под своим именем.\n' +
'Без этого Вы не сможете изменить, подправить или\n' +
'удалить свое объявление !!!\n' +
'\n' +
'Вы действительно хотите срочно создать объявление,\n' +
'которое потом не сможете изменить или подправить?'
   );
}

function hideImages(){
  var images=document.getElementsByTagName("img");
  var imgUrl=new Object();
  for(var i=0; i<images.length; i++){
    var img=images[i]
    if((img.src.indexOf("/_bd/") < 0) || (img.className=='preview'))continue;
    if(img.src in imgUrl)
       img.style.display="none";
    else
       imgUrl[img.src]=1;
  }
}

function correctMaxSizes(){
   var e=document.getElementById("bdF4");
   e=e.nextSibling;
   e.data=" макс. 100x100, "
   e=e.nextSibling;
   e.firstChild.data="30";

   e=document.getElementById("bdM14");
   e.innerHTML="<b>Маленькое</b> фото для заголовка<br>(<font color='red'><b>не больше чем 100x100, 30КБ !</b></font>)<br>Используйте <b>только</b> если уменьшенное первое фото смотрится там плохо";

   e=document.getElementById("iM39");
   e.firstChild.data="Фотографии [";
   e=e.lastChild;
   e.innerHTML="Максимальный размер - <font color='red'><b>500</b>Kb</font><p><font color='blue'>Фото будут видны на месте строчек $IMAGE1$, $IMAGE2$ и т.д. в поле 'Дополнительный текст объявления'</font></p><p><font color='green'>Уменьшенное <b>первое</b> фото будет показано <b>рядом с кратким описанием!</b></font></p>";

   e=document.getElementById("bdM38");
   e.innerHTML='Регистрационный номер в картотеке "Потеряшки" ' +
    '[<a href="javascript://" title="Где его взять" onclick="help(\'regnum\',450,450);return false;" class="noun"><b>?</b></a>]';
}

function correctEMail(doNotCheck){
   e=document.getElementById("sbsc");
   if(!doNotCheck) e.checked='true';
   e=e.nextSibling.nextSibling.firstChild;
   e.data+=". Работает ТОЛЬКО при подтвержденном e-Mail (для проверки зайдите в 'Мой профиль')"

   $('#tagsTd1').parent().hide();

   var go_to=$('#goto');
   go_to.before('<input name="goto" type="hidden" value="1">');
   window.extLinksHid=true;
   go_to.remove();
   var opt=$('#bdM58');
   opt.hide().prev().hide(); 
}

function showAfterRegN(doShow){
   var hRows=$("#bdM37").nextAll().slice(1);
   if(doShow) 
       hRows.removeClass('hideRow');
   else
       hRows.addClass('hideRow');
}

function hideRegNum(){
   var rnRow=$("#bdM37");
   if(rnRow.children().eq(0).text().substr(0,3)!="Рег")
      return;
   if($('#cus4').get(0).checked) {
     showAfterRegN(true);
   } else {
     rnRow.show();
     if(window.userOb && userOb.hasNotRegOb)
       checkRegNum(true) 
   }
}

function decorRegNum(){
   var e=document.getElementById("bdM37");
   if(e.firstChild.firstChild.data.substr(0,3)!="Рег")
      return;
   e.firstChild.innerHTML='Регистрационный номер в картотеке "Потеряшки":<br>(телефоны пульта - в заголовке всех страниц сайта)';
   e.lastChild.innerHTML='<input id="bdF14" class="manFlOth2" size="30" name="other2" maxlength="100" type="text"> <font color="#ff0000">Регистрация на пульте <b>обязательна</b>!</font><br>Объявления без правильного рег.номера через 3 дня <u>переносятся в Архив</u>, и возможность повторно размещать объявления без правильного рег.номера для такого пользователя <u>блокируется</u>!';
}

var regN_idBad=false;
var regN_range = [
 ["cus1", 29000, 35999, /^([Пп]\.?)?((2[9-9])|(3[0-5]))[0-9][0-9][0-9]($|[\,\ \;])/, "П"], 
 ["cus2", 70000, 99999, /^([Нн]\.?)?[7-9][0-9][0-9][0-9][0-9]($|[\,\ \;])/, "Н"],
 ["cus3", 19000, 28999, /^([Оо]\.?)?((19)|(2[0-8]))[0-9][0-9][0-9]($|[\,\ \;])/, "о"]
];

function regNRange(regN){
  for(var i=0;i<regN_range.length;i++){
    if(regN.match(regN_range[i][3])) 
      return i;
  }
  return null;
}

function checkRegNum(bSilent){
   if($('#bdF20').val()=="7") {  // other animals
     showAfterRegN(true);
     return true;
   }
   var e=document.getElementById("bdF14");
   var v=e.value;
   v=v.replace(/^\s+|\s+$/g, '');
   e.value=v;
   var mask=null;
   var pref;
   var nFrom;
   var nTo;

   for(var i=0;i<regN_range.length;i++){
     var aCat=regN_range[i];
     e=document.getElementById(aCat[0]);
     if(e && e.checked) {
       pref=aCat[4]; nFrom=aCat[1]; nTo=aCat[2];
       mask=aCat[3];
       break;
     }
   }

   regN_idBad = (mask && !v.match(mask));

   if(window.userOb && userOb.hasNotRegOb) {
     showAfterRegN(regNRange(v)!=null);
   }

   if(window.userOb && userOb.userRegNums && userOb.userRegNums[v]) {
     var alertMsg='<br><font color="red"><b>У Вас уже есть объявление с тем же самым регистрационным номером.</b></font><br><br>'
     +'Если речь идет о том же самом животном - то <b>не делайте дублей</b>, '
     +'а измените уже имеющееся объявление при помощи кнопки <img src="http://s21.ucoz.net/img/fr/bt/39/p_edit.gif">.<br><br>'
     +'Объявления с одинаковыми регистрационными номерами поступают на проверку, и <b>дубли удаляются</b>!<br><br>'
     +'Исключение возможно только в том случае, если на один номер на пульте было действительно зарегистрировано несколько <b>разных</b> животных (обычно - щенки или котята одного помета).'

     alertMsg+='<br><br><div align="center">'
     +'<a href="/search/?m=board&amp;t=1&amp;q='+v+'" target="_blank"><b>Показать объявления с тем же рег.номером</b></a><br><br>'
     +'<a href="/board/0-0-'+userID+'-0-17" target="_blank"><b>Показать все мои объявления</b></a></div>'
     +'<br><input type="button" value="Закрыть" onclick="_uWnd.getbyname(\'napom\').close();"><br><br>'
     new _uWnd('napom',"Дублирующийся регистрационный номер",450,300,{autosize:0,resize:0,modal:1},alertMsg);
   }

   if(bSilent){
    return !regN_idBad;
   }
   if(regN_idBad) {
      var ans=confirm(
(v==""?
"Вы не указали регистрационный номер,\nкоторый выдается на пульте \"Потеряшки\".\n\nОбъявления без регистрационного номера":
"Регистрационный номер не соответствует Категории.\nДля данной категории допустимы номера\nот " + nFrom + " до " + nTo + " (и впереди может быть буква \"" + pref + "\").\n\nОбъявления с неправильным регистрационным номером"
)+"\nчерез 3 дня переносятся в Архив!\n\nВсе равно хотите сохранить так?" );
      if(ans)
        alert('ОБЯЗАТЕЛЬНО дозвонитесь на пульт "Потеряшки"\n(телефоны - на заголовках всех страниц сайта),\nполучите там регистрационный номер\nи внесите его в свое объявление - иначе\nчерез 3 дня оно будет перенесено в АРХИВ !');
      return ans;
   }
   return true;
}

function getCatId(){
  return $('input[id^="cus"][checked]').val()
}

function setCatByRegN(){
  var range=regNRange($("#bdF14").val());
  if(range==null)
    return;
  var cat=$('input[id^="catSelector"]').val();
  if(regN_idBad || cat.indexOf('Выбрать')>=0 || cat.indexOf('нет регистрации')>=0) {
    $('#'+regN_range[range][0]).click(); //attr('checked','checked');
  }
}

function hideExtraFields(){
// $('#bdM40').hide();
// $('#bdM43').hide(); 
 $('input[name="other3"]').parent().parent().hide();
 $('input[name="other4"]').parent().parent().hide();
 $('textarea:visible ~ *').hide();
 $("input[id^='format_']").hide();
 $("label[for^='format_']").hide();
// $('#mdM33').hide();
}

function getContacts(txt){
  if(!window.aemail){
    var match=txt.match(/[a-zA-Z\.\-\_]+\@[a-zA-Z\.\-\_]+\.[a-zA-Z]+/)
    if(match) window.aemail=match[0];   
  }
  if(!window.phone){
    var rexPhone=/[^\/\-0-9]((((((\+?7)|8)[\ \-]?)?\(?\d\d\d\)?)[\ \-]?)?(\d[\ \-]?){6}\d)([^\-0-9]|$)/;
    var match=txt.match(rexPhone)
    if(match){
      window.phone=match[1];

      if(!window.aname){
        var nm=txt.substr(txt.lastIndexOf(phone)+phone.length);
        nm=nm.replace(/^(\s|[\,\:\-\.\;]|(<\/?((br)|p|(div))\ ?\/?>))+/,'').replace(/(\s|[\,\:\-\.\;]|(<\/?((br)|p|(div))\ ?\/?>))+$/,'');
        var pos=nm.search(/\n|(<\/?((br)|p|(div))\ ?\/?>)/);
        if(pos>0) nm=nm.substr(0,pos);
        match=nm.match(rexPhone);
        if(match)
          window.phone+=', '+match[1];
        else {
          if(nm.match(/^\w\w\w+(\ +\w\w\w+)?$/) || (nm.length>2 && nm.length<10))
            window.aname=nm;
        }
      }
    }
    if(window.phone && window.phone.replace(/[^0-9]/g,'').length==10 && !window.phone.match(/^(\+?7)|8/))
      window.phone='8'+window.phone;
  }
}

function onclickSave(){
  if(checkRegNum()) {
//    $('#bdF1').each(function(el) { $(this).val(normSpaces($(this).val())) });
//    $('textarea').each(function(el) { $(this).val(normSpaces($(this).val())) });
    $('#doSmbBt').click();
    return true;
  }
  return false;
}

function setModifTime(){
$('span[lmod]').each(function(){
 var addDateTime=this.firstChild;
 var addDate=addDateTime.innerHTML;
 var lmod=parseInt(this.getAttribute('lmod'));
 var dToday=new Date();
 dToday.setHours(0,0,0,0);
 var today=dToday.getTime()/1000;
 if(window.timeDiff) today-=window.timeDiff;
// var today=currTime();
 var yesterday=today-24*60*60;
 var tomorrow=today+24*60*60;
 var dMod=new Date();
 dMod.setTime(lmod*1000);
 
 var modDate=
 (lmod>=today && lmod<tomorrow ? 'Сегодня' : 
 lmod>=yesterday && lmod<today ? 'Вчера' : 
 n2(dMod.getDate())+'.'+n2(dMod.getMonth()+1)+'.'+dMod.getFullYear());

 var modTime=dMod.toTimeString().substr(0,5);

 if(addDate==modDate)
   addDateTime.title=modTime+"/"+addDateTime.title;
 else
   this.innerHTML="<span title='"+modTime+"'>"+modDate+"</span>/"+this.innerHTML;
});
}

function setModifTime2(){
$('span[lmod]').each(function(){
 var dAdd=this.innerHTML;
 var lmod=parseInt(this.getAttribute('lmod'));
 var dToday=new Date();
 dToday.setHours(0,0,0,0);
 var today=dToday.getTime()/1000;
 if(window.timeDiff) today-=window.timeDiff;
// var today=currTime();
 var yesterday=today-24*60*60;
 var tomorrow=today+24*60*60;
 var dMod=new Date();
 dMod.setTime(lmod*1000);
 
 var modDate=
 (lmod>=today && lmod<tomorrow ? 'Сегодня' : 
 lmod>=yesterday && lmod<today ? 'Вчера' : 
 n2(dMod.getDate())+'.'+n2(dMod.getMonth()+1)+'.'+dMod.getFullYear());

 var modTime=dMod.toTimeString().substr(0,5);

 var dateLen=modDate.length;

 if(dAdd.substr(0,dateLen)==modDate)
   this.innerHTML=modDate+', '+modTime+'/'+dAdd.substr(dateLen+2);
 else
   this.innerHTML=modDate+', '+modTime+"/"+dAdd;
});
}

function up(id,lastModTS,addTS,oLink,regN){
 var dMod=new Date();
 dMod.setTime(lastModTS*1000);
 var nextTS=lastModTS+7*24*60*60+50;
// var dNow=new Date();
// var secLeft=nextTS - dNow.getTime()/1000;
 var secLeft=nextTS - currTime();
// if(window.timeDiff) secLeft-=window.timeDiff;

 var extraInf="\n\nlocal time: "+(new Date())+" "+(new Date()).getTime()+
   "\ntimeDiff: "+window.timeDiff+
   "\ncurrTime: "+currTime()+
   "\nlastModTS: "+lastModTS+
   "\nnextTS: "+nextTS;

 if(secLeft > 0) {
 var minutes=secLeft/60;
 var hours=minutes/60;
 var days=hours/24;
 var nextD=new Date();
 nextD.setTime(nextTS*1000);
 var nextDay=n2(nextD.getDate())+'.'+n2(nextD.getMonth()+1)+'.'+nextD.getFullYear();
 var nextTime=nextD.toTimeString().substr(0,5);
 var txt='Поднимать объявление можно не чаще чем раз в неделю.\n\n'+
 'Это объявление можно будет поднять через ' +
 (days >= 1 ? '' + Math.round(days) + (days < 1.5 ? ' день' : (days<4.5 ? ' дня' : ' дней')) + ', ' + nextDay + ',': 
 (hours > 0.8 ? '' + Math.round(hours) + ' час.,' : '' + (Math.round(minutes)+1) + ' мин.,')) + ' после ' + nextTime ;
if(regN=='')
  txt+='\n\nИ обязательно впишите в объявление правильный регистрационный номер, полученный на пульте "Потеряшки" - иначе Ваше объявление очень скоро перейдет из основного списка в архив!'
// admAlert('кнопка "Поднять" id='+id, txt+extraInf);
 alert( txt );
 return;
 } 

alert('Извините, эта кнопка временно не работает.\n\nДля поднятия объявления нажмите кнопку "Правка" и затем на странице редактирования - кнопку "Сохранить".')
return;

 var btnSrc;
 var oBtn;
 if(oLink){ 
 oLink.onclick=''; oBtn=oLink.firstChild; btnSrc=oBtn.src; oBtn.src='/css/ajax-load.gif'; }
 $.get('/board/0-0-0-'+id+'-13?addDate='+addTS, function(data){
 var form=$('#addEntForm',data);
 var flagsIn=$('input[name="other4"]',form);
 var flags=flagsIn.val();
 if(flags!=null && flags.indexOf(',up,')<0) {
   if(!flags.match(/\,$/)) flags+=',';
   flagsIn.val(flags+'up,');
 }

// _uPostForm('addEntForm')
//alert(form.ajaxSubmit)
//form.ajaxSubmit({app:0,wnd:0,url:'/board/',type:'POST',

 _uPostForm(form, {success:function(){
   if(oBtn) oBtn.scr=btnSrc;
   alert("Объявление поднято");
   window.location.href='/board/23';}}); 
//   admAlert('кнопка "Поднять" - ОК', 'id: '+id+extraInf);
 })

}

grpClass=['User','Verify','Moder','Admin','Other1','Other2','Other3']

function showObNIn(obN,uGID,uGName,controlID){
  var obNlink=$('#'+controlID)
  obNlink.html(obN<=1?'<b>'+obN+'</b>':'<font color=red><b>'+obN+'</b></font>');
  obNlink.prev().attr('title',uGName).addClass('group'+grpClass[uGID-1])
}

function showObN(userID,controlID){
  if(!navigator.obN) navigator.obN=[];
  if(!navigator.uGID) navigator.uGID=[];
  if(navigator.obN[userID]) {
    showObNIn(navigator.obN[userID],navigator.uGID[userID][0],navigator.uGID[userID][1],controlID);
  } else {
    $.get('/index/8-'+userID, function(data) {
      var obN=parseInt($('a[href*="board"] b',$(data)).html());
      var uGID=$('#block2 option[selected]',$(data));
      uGID=[parseInt(uGID.val()),uGID.text()];
      navigator.obN[userID]=obN;
      navigator.uGID[userID]=uGID  
      showObNIn(obN,uGID[0],uGID[1],controlID);
    });
  }
}

function showImgSizeIn(imgSize,controlID){
  imgSize=Math.round(imgSize/1000);
  $('#'+controlID).html(imgSize<=80?imgSize+'K':'<font color=red><b>'+imgSize+'K</b></font>');
}

function showImgSize(url,controlID){
  if(!navigator.imgSize) navigator.imgSize=[];
  var shortURL=url.replace(/^http\:\/\/[^\/]+(\/.*$)/,'$1');
  if(navigator.imgSize[shortURL]) 
    showImgSizeIn(navigator.imgSize[shortURL],controlID);
  else {
    $.ajax({type:"HEAD", url:shortURL, complete: function (XMLHttpRequest, textStatus) {
      var imgSize=XMLHttpRequest.getResponseHeader('Content-Length');
      navigator.imgSize[shortURL]=imgSize;
      showImgSizeIn(imgSize,controlID);
    }});
  }
}

function showImages(){
 var msg=$('#msg').html();
 var n=0;
 for(var i=0;i<allImages.length;i++){
  var imgI=allImages[i];
  var fullImgURL=imgI[0];
  if(fullImgURL.length==0) continue;
  var fullImgW=imgI[1];
  var fullImgH=imgI[2];
  var WH=fullImgW*fullImgH;
  if(WH<20000) continue; 
  var smalImgURL=imgI[3];
  var smalImgW=imgI[4];
  var smalImgH=imgI[5];
  if(msg.indexOf(fullImgURL.slice(fullImgURL.indexOf('/_bd/')))>=0 || (smalImgURL.length>0 && msg.indexOf(smalImgURL.slice(smalImgURL.indexOf('/_bd/')))>=0)) continue;

  if(n>0) document.write(' ');
  if(smalImgURL.length>0)
   document.write('<a href="'+fullImgURL+'" title=""><img src="'+smalImgURL+'" target="_blank" border="0"></a>');
  else
   document.write('<img src="'+fullImgURL+'" target="_blank">');
  n++;
  if(n>1){
    n=0;
    document.write('<br><br>');
  }
 } 
}

function noDeleteBd0(){
 $('img[id^="dib"]').each(function(){
  var id=this.id.substr(3);
  if(window.bdInLinks.indexOf(','+id+',')<0) return;
  $(this).parent().removeAttr('onclick').unbind('click').click(function(){alert("На это объявление установлены ссылки с других сайтов, поэтому удалять его нельзя.\n\n"+
   "Перенесите его в категорию УДАЛЕННЫЕ, тогда оно станет не видным для всех, кроме модераторов");});
 })
}

function noDeleteBd(){
 if(!window.bdInLinks){ 
  $.get('/boardInLinks.txt', function(data){
   var ar=data.split('\n');
   window.bdInLinks=',';
   for(i in ar) window.bdInLinks+=ar[i]+',';
   noDeleteBd0();
  });
 } else 
  noDeleteBd0();
}


