Вход Регистрация
Файл: js/al/phototag.js
Строк: 280
<?php
var Phototag = {
  
startTag: function() {
    if (
cur.pvTagger || !cur.pvPhoto.firstChild) return;

    if (!
cur.pvFriends) {
      
cur.pvFriends layer.appendChild(ce('div', {id'pv_friends'innerHTML'
<div class="box_title_wrap"><div class="box_x_button"></div>
  <div class="box_title">' 
getLang('photos_typename') + '</div>
</div>
<div class="name_input"><input onkeyup="Phototag.updateFriends()" onkeypress="if (event.keyCode == 10 || event.keyCode == 13) Phototag.addTag()" type="text" id="pv_friend_name" class="text" /></div>
<div class="list_wrap"><a href="/" onclick="return Phototag.addTag(' 
vk.id ', event)">' getLang('photos_tags_me') + '</a>
  <div id="pv_friends_cont"><div class="progress"></div></div>
</div>
<div class="box_controls_wrap">
  <div class="box_controls">
    <table id="pv_tag_buttons" cellspacing="0" cellpadding="0">
      <tr>
        <td><div class="button_blue button_wide"><button id="pv_add_tag">' 
getLang('global_add') + '</button></div></td>
        <td><div class="button_gray button_wide"><button id="pv_cancel_tag">' 
getLang('global_cancel') + '</button></div></td>
      </tr>
    </table>
    <div id="pv_tag_progress" class="progress"></div>
  </div>
</div>
      '
}));
      
extend(cur, {
        
pvFriendNamege('pv_friend_name'),
        
pvFriendsContge('pv_friends_cont')
      });
      
addEvent(cur.pvFriends'click', function() {
        
cur.pvClicked true;
      });
      var 
xbtn cur.pvFriends.firstChild.firstChild;
      
addEvent(xbtn'mouseover', function() { animate(this, {backgroundColor'#FFFFFF'}, 200); });
      
addEvent(xbtn'mouseout', function() { animate(this, {backgroundColor'#9CB8D4'}, 200); });
      
addEvent(xbtn'click'Phototag.stopTag);

      
ge('pv_add_tag').onclick Phototag.addTag;
      
ge('pv_cancel_tag').onclick Phototag.stopTag;
    }
    if (!
cur.pvFriendsList) {
      
ajax.post('al_friends.php', {act'pv_friends'}, {onDone: function(list) {
        
cur.pvFriendsList = list;
        
Phototag.cacheFriends();
        
Phototag.updateFriends();
      }});
    } else {
      
cur.pvFriendsQ false;
      
Phototag.updateFriends();
    }
    
cleanElems('pv_confirm_tag''pv_delete_tag''pv_prof_cancel''pv_prof_done');
    
cur.pvTagInfo.innerHTML '<div class="msg"><a class="fl_r" onclick="Phototag.stopTag()">' getLang('global_done') + '</a>' getLang('photos_select_tag_area') + '</div>';
    
show(cur.pvTagInfo);
    
hide(cur.pvLeftcur.pvLeftNavcur.pvRightNavcur.pvClose);
    
Photoview.updateHeight();

    
layerWrap.scrollTop 0;
    
cur.pvTagger 'loading';

    if (!
cur.pvTagger) return;
    var 
options = {
      
minw30,
      
minh30,
      
onStart: (browser.msie || browser.mozilla) ? hide.pbind(cur.pvFriends) : fadeOut.pbind(cur.pvFriends200),
      
onFinishPhototag.showFriends
    
}, ph cur.pvData[cur.pvListId][cur.pvIndex];

    
cur.pvTagger photoTagger(cur.pvPhoto.firstChildextend(options, {
      
zstart600
    
}));
  },
  
stopTag: function() {
    if (!
cur.pvTagger || cur.pvTagger == 'loading') {
      
cur.pvTagger false;
      return;
    }
    
hide(cur.pvFriendscur.pvTagInfo);
    if (
cur.pvListId && cur.pvData[cur.pvListId].length 1) {
      
show(cur.pvLeftcur.pvClosecur.pvLeftNavcur.pvRightNav);
    }
    
Photoview.updateHeight();
    if (
cur.pvFriendName) {
      
cur.pvFriendName.value '';
      
cur.pvFriendsQ false;
      
Phototag.updateFriends();
    }
    
cur.pvTagger.destroy();
    
cur.pvTagger false;
  },
  
addTag: function(midev) {
    if (
checkEvent(ev)) return true;
    if (!
cur.pvTagger || cur.pvTagger == 'loading') return false;
    if (
isVisible('pv_tag_progress')) return false;

    var 
name trim(cur.pvFriendName.value), rect cur.pvTagger.result();
    if (!
mid) {
      var list = 
cur.pvFriendsCont;
      if (
name && list.firstChild && list.firstChild == list.lastChild && list.firstChild.tagName.toLowerCase() == 'a') {
        
mid = list.firstChild.getAttribute('mid');
      }
    }
    if (!
mid && !name || !rect[2]) {
      
elfocus(cur.pvFriendName);
      return 
false;
    }
    var 
listId cur.pvListIdindex cur.pvIndexph cur.pvData[listId][index];
    var 
xy getSize(cur.pvPhoto.firstChild);
    var 
= (rect[0] / xy[0] * 100), = (rect[1] / xy[1] * 100);
    var 
x2 = ((rect[0] + rect[2]) / xy[0] * 100), y2 = ((rect[1] + rect[3]) / xy[1] * 100);
    
ajax.post('al_photos.php', {act'add_tag'midmidphotoph.idnamenamehashph.hashxxyyx2x2y2y2}, {onDone: function(tagstaggedhtml) {
      
ph.tags tags;
      
ph.tagged tagged;
      
ph.tagshtml html;
      if (
cur.pvListId == listId && cur.pvIndex == index) {
        
re(Photoview.actionInfo());
        
Photoview.setTags(html);
        ((!
ph.taginfo && ph.actions.tag && tags[0] < cur.pvMaxTags) ? show hide)(cur.pvTagLink);
        var 
resetFr = function() {
          
cur.pvFriendName.value '';
          
Phototag.updateFriends();
        }
        if (
browser.msie || browser.mozilla) {
          
hide(cur.pvFriends);
          
resetFr();
        } else {
          
fadeOut(cur.pvFriends200resetFr);
        }
        
cur.pvTagger.reset();
      }
    }, 
showProgress: function() {
      
hide('pv_tag_buttons');
      
show('pv_tag_progress');
    }, 
hideProgress: function() {
      
hide('pv_tag_progress');
      
show('pv_tag_buttons');
    }});
    return 
false;
  },

  
updateFriends: function() {
    if (!
cur.pvFriendsList || !cur.pvFriends) return;

    var 
trim(cur.pvFriendName.value).toLowerCase().replace(/[ё]/, 'е'), frs = [];
    if (
=== cur.pvFriendsQ) return;

    
cur.pvFriendsQ q;
    var 
lat parseLatin(q);
    var 
toMatch lat ? [escapeRE(q), escapeRE(lat)] : (? [escapeRE(q)] : false);

    if (
q.length && !cur.pvFriendsCache[q] || q.length == && lat) {
      
Phototag.cacheFriends(q);
    }
    var 
friends cur.pvFriendsCache[q] : cur.pvFriendsListtagged cur.pvData[cur.pvListId][cur.pvIndex].tagged;

    for (var 
i in friends) {
      var 
fr cur.pvFriendsList[i], mid positive(i), name fr[1];
      if (
tagged[mid]) continue;
      if (
toMatch) {
        
each(toMatch, function() {
          var 
re = new RegExp('(?![^&;]+;)(?!<[^<>]*)(' this ')(?![^<>]*>)(?![^&;]+;)''gi');
          
name name.replace(re'<em>$1</em>');
        });
      }
      
frs.push('<a mid="' mid '" href="' fr[0] + '" onclick="return Phototag.addTag(' mid ', event)">' name '</a>');
    }
    var 
st = (frs.length 8) ? {height'184px'overflow'auto'} : {height''overflow''};
    
setStyle(cur.pvFriendsCont.parentNodest);
    
cur.pvFriendsCont.innerHTML frs.join('');
    (
&& !frs.length hide show)(cur.pvFriendsCont.parentNode);
    (
|| tagged[vk.id] ? hide show)(cur.pvFriendsCont.parentNode.firstChild);
  },
  
cacheFriends: function(q) {
    if (
q) {
      if (!
cur.pvFriendsCache[q]) cur.pvFriendsCache[q] = {};

      var 
parseLatin(q);
      var 
queries ? [qt] : [q];
      for (var 
i in queries) {
        
query queries[i];
        var 
searchIn cur.pvFriendsCache[query.substr(01).toLowerCase()];
        if (
searchIn) {
          
query escapeRE(query);
          for (var 
i in searchIn) {
            var 
name cur.pvFriendsList[i][1].replace(/[ёЁ]/, 'е');
            if ((new 
RegExp('^' query '|\s' query '|\(' query'gi')).test(name)) {
              
cur.pvFriendsCache[q][i] = 1;
            }
          }
        }
      }
      return;
    }
    
cur.pvFriendsCache = {};
    for (var 
i in cur.pvFriendsList) {
      var 
name cur.pvFriendsList[i][1].replace(/[ёЁ]/, 'е');
      var 
cursor 0letter;
      while (
1) {
        
letter name.charAt(cursor).toLowerCase();
        if (!
cur.pvFriendsCache[letter]) {
          
cur.pvFriendsCache[letter] = {};
        }
        
cur.pvFriendsCache[letter][i] = 1;
        
cursor name.indexOf(' 'cursor 1);
        if (
cursor == -1) break;
        ++
cursor;
      }
    }
  },
  
showFriends: function() {
    if (!
cur.pvTagger || cur.pvTagger == 'loading') return;

    var 
cur.pvTagger.result();
    var 
xy getXY(cur.pvPhoto.firstChild), xy[0] + r[0] + r[2] + 20;
    if (
lastWindowWidth <= 190 sbWidth() + 5) {
      if (
xy[0] + r[0] <= 190 25) {
        
lastWindowWidth 190 sbWidth() - 5;
      } else {
        
xy[0] + r[0] - 190 20;
      }
    }
    var 
getSize(cur.pvFriends)[1], xy[1] + layerWrap.scrollTop r[1] - ((layerWrap.offsetParent || {}).scrollTop || bodyNode.scrollTop || htmlNode.scrollTop);
    if (
layerWrap.scrollTop lastWindowHeight <= 5) {
      
layerWrap.scrollTop lastWindowHeight 5;
    }
    
cur.pvFriends.style.left 'px';
    
cur.pvFriends.style.top 'px';
    if (!
isVisible(cur.pvFriends)) {
      if (
browser.msie || browser.mozilla) {
        
show(cur.pvFriends);
      } else {
        
fadeIn(cur.pvFriends200, function() {
          
setTimeout(elfocus.pbind(cur.pvFriendNamefalsefalse), 1);
        });
      }
    } else {
      
animate(cur.pvFriends, {opacity1}, 200, function() {
        
setTimeout(elfocus.pbind(cur.pvFriendNamefalsefalse), 1);
      });
    }
  }
};

try{
stManager.done('phototag.js');}catch(e){}
?>
Онлайн: 0
Реклама