Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Файл - phototag.js (Старый размер - 9371 | Новый - 0):
- 0. - var Phototag = {
- 1. - startTag: function() {
- 2. - if (cur.pvTagger || !cur.pvPhoto.firstChild) return;
- 3. -
- 4. - if (!cur.pvFriends) {
- 5. - cur.pvFriends = layer.appendChild(ce('div', {id: 'pv_friends', innerHTML: '\
- 6. - <div class="box_title_wrap"><div class="box_x_button"></div>\
- 7. - <div class="box_title">' + getLang('photos_typename') + '</div>\
- 8. - </div>\
- 9. - <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>\
- 10. - <div class="list_wrap"><a href="/" onclick="return Phototag.addTag(' + vk.id + ', event)">' + getLang('photos_tags_me') + '</a>\
- 11. - <div id="pv_friends_cont"><div class="progress"></div></div>\
- 12. - </div>\
- 13. - <div class="box_controls_wrap">\
- 14. - <div class="box_controls">\
- 15. - <table id="pv_tag_buttons" cellspacing="0" cellpadding="0">\
- 16. - <tr>\
- 17. - <td><div class="button_blue button_wide"><button id="pv_add_tag">' + getLang('global_add') + '</button></div></td>\
- 18. - <td><div class="button_gray button_wide"><button id="pv_cancel_tag">' + getLang('global_cancel') + '</button></div></td>\
- 19. - </tr>\
- 20. - </table>\
- 21. - <div id="pv_tag_progress" class="progress"></div>\
- 22. - </div>\
- 23. - </div>\
- 24. - '}));
- 25. - extend(cur, {
- 26. - pvFriendName: ge('pv_friend_name'),
- 27. - pvFriendsCont: ge('pv_friends_cont')
- 28. - });
- 29. - addEvent(cur.pvFriends, 'click', function() {
- 30. - cur.pvClicked = true;
- 31. - });
- 32. - var xbtn = cur.pvFriends.firstChild.firstChild;
- 33. - addEvent(xbtn, 'mouseover', function() { animate(this, {backgroundColor: '#FFFFFF'}, 200); });
- 34. - addEvent(xbtn, 'mouseout', function() { animate(this, {backgroundColor: '#9CB8D4'}, 200); });
- 35. - addEvent(xbtn, 'click', Phototag.stopTag);
- 36. -
- 37. - ge('pv_add_tag').onclick = Phototag.addTag;
- 38. - ge('pv_cancel_tag').onclick = Phototag.stopTag;
- 39. - }
- 40. - if (!cur.pvFriendsList) {
- 41. - ajax.post('al_friends.php', {act: 'pv_friends'}, {onDone: function(list) {
- 42. - cur.pvFriendsList = list;
- 43. - Phototag.cacheFriends();
- 44. - Phototag.updateFriends();
- 45. - }});
- 46. - } else {
- 47. - cur.pvFriendsQ = false;
- 48. - Phototag.updateFriends();
- 49. - }
- 50. - cleanElems('pv_confirm_tag', 'pv_delete_tag', 'pv_prof_cancel', 'pv_prof_done');
- 51. - cur.pvTagInfo.innerHTML = '<div class="msg"><a class="fl_r" onclick="Phototag.stopTag()">' + getLang('global_done') + '</a>' + getLang('photos_select_tag_area') + '</div>';
- 52. - show(cur.pvTagInfo);
- 53. - hide(cur.pvLeft, cur.pvLeftNav, cur.pvRightNav, cur.pvClose);
- 54. - Photoview.updateHeight();
- 55. -
- 56. - layerWrap.scrollTop = 0;
- 57. - cur.pvTagger = 'loading';
- 58. -
- 59. - if (!cur.pvTagger) return;
- 60. - var options = {
- 61. - minw: 30,
- 62. - minh: 30,
- 63. - onStart: (browser.msie || browser.mozilla) ? hide.pbind(cur.pvFriends) : fadeOut.pbind(cur.pvFriends, 200),
- 64. - onFinish: Phototag.showFriends
- 65. - }, ph = cur.pvData[cur.pvListId][cur.pvIndex];
- 66. -
- 67. - cur.pvTagger = photoTagger(cur.pvPhoto.firstChild, extend(options, {
- 68. - zstart: 600
- 69. - }));
- 70. - },
- 71. - stopTag: function() {
- 72. - if (!cur.pvTagger || cur.pvTagger == 'loading') {
- 73. - cur.pvTagger = false;
- 74. - return;
- 75. - }
- 76. - hide(cur.pvFriends, cur.pvTagInfo);
- 77. - if (cur.pvListId && cur.pvData[cur.pvListId].length > 1) {
- 78. - show(cur.pvLeft, cur.pvClose, cur.pvLeftNav, cur.pvRightNav);
- 79. - }
- 80. - Photoview.updateHeight();
- 81. - if (cur.pvFriendName) {
- 82. - cur.pvFriendName.value = '';
- 83. - cur.pvFriendsQ = false;
- 84. - Phototag.updateFriends();
- 85. - }
- 86. - cur.pvTagger.destroy();
- 87. - cur.pvTagger = false;
- 88. - },
- 89. - addTag: function(mid, ev) {
- 90. - if (checkEvent(ev)) return true;
- 91. - if (!cur.pvTagger || cur.pvTagger == 'loading') return false;
- 92. - if (isVisible('pv_tag_progress')) return false;
- 93. -
- 94. - var name = trim(cur.pvFriendName.value), rect = cur.pvTagger.result();
- 95. - if (!mid) {
- 96. - var list = cur.pvFriendsCont;
- 97. - if (name && list.firstChild && list.firstChild == list.lastChild && list.firstChild.tagName.toLowerCase() == 'a') {
- 98. - mid = list.firstChild.getAttribute('mid');
- 99. - }
- 100. - }
- 101. - if (!mid && !name || !rect[2]) {
- 102. - elfocus(cur.pvFriendName);
- 103. - return false;
- 104. - }
- 105. - var listId = cur.pvListId, index = cur.pvIndex, ph = cur.pvData[listId][index];
- 106. - var xy = getSize(cur.pvPhoto.firstChild);
- 107. - var x = (rect[0] / xy[0] * 100), y = (rect[1] / xy[1] * 100);
- 108. - var x2 = ((rect[0] + rect[2]) / xy[0] * 100), y2 = ((rect[1] + rect[3]) / xy[1] * 100);
- 109. - ajax.post('al_photos.php', {act: 'add_tag', mid: mid, photo: ph.id, name: name, hash: ph.hash, x: x, y: y, x2: x2, y2: y2}, {onDone: function(tags, tagged, html) {
- 110. - ph.tags = tags;
- 111. - ph.tagged = tagged;
- 112. - ph.tagshtml = html;
- 113. - if (cur.pvListId == listId && cur.pvIndex == index) {
- 114. - re(Photoview.actionInfo());
- 115. - Photoview.setTags(html);
- 116. - ((!ph.taginfo && ph.actions.tag && tags[0] < cur.pvMaxTags) ? show : hide)(cur.pvTagLink);
- 117. - var resetFr = function() {
- 118. - cur.pvFriendName.value = '';
- 119. - Phototag.updateFriends();
- 120. - }
- 121. - if (browser.msie || browser.mozilla) {
- 122. - hide(cur.pvFriends);
- 123. - resetFr();
- 124. - } else {
- 125. - fadeOut(cur.pvFriends, 200, resetFr);
- 126. - }
- 127. - cur.pvTagger.reset();
- 128. - }
- 129. - }, showProgress: function() {
- 130. - hide('pv_tag_buttons');
- 131. - show('pv_tag_progress');
- 132. - }, hideProgress: function() {
- 133. - hide('pv_tag_progress');
- 134. - show('pv_tag_buttons');
- 135. - }});
- 136. - return false;
- 137. - },
- 138. -
- 139. - updateFriends: function() {
- 140. - if (!cur.pvFriendsList || !cur.pvFriends) return;
- 141. -
- 142. - var q = trim(cur.pvFriendName.value).toLowerCase().replace(/[�]/, '�'), frs = [];
- 143. - if (q === cur.pvFriendsQ) return;
- 144. -
- 145. - cur.pvFriendsQ = q;
- 146. - var lat = parseLatin(q);
- 147. - var toMatch = lat ? [escapeRE(q), escapeRE(lat)] : (q ? [escapeRE(q)] : false);
- 148. -
- 149. - if (q.length > 1 && !cur.pvFriendsCache[q] || q.length == 1 && lat) {
- 150. - Phototag.cacheFriends(q);
- 151. - }
- 152. - var friends = q ? cur.pvFriendsCache[q] : cur.pvFriendsList, tagged = cur.pvData[cur.pvListId][cur.pvIndex].tagged;
- 153. -
- 154. - for (var i in friends) {
- 155. - var fr = cur.pvFriendsList[i], mid = positive(i), name = fr[1];
- 156. - if (tagged[mid]) continue;
- 157. - if (toMatch) {
- 158. - each(toMatch, function() {
- 159. - var re = new RegExp('(?![^&;]+;)(?!<[^<>]*)(' + this + ')(?![^<>]*>)(?![^&;]+;)', 'gi');
- 160. - name = name.replace(re, '<em>$1</em>');
- 161. - });
- 162. - }
- 163. - frs.push('<a mid="' + mid + '" href="' + fr[0] + '" onclick="return Phototag.addTag(' + mid + ', event)">' + name + '</a>');
- 164. - }
- 165. - var st = (frs.length > 8) ? {height: '184px', overflow: 'auto'} : {height: '', overflow: ''};
- 166. - setStyle(cur.pvFriendsCont.parentNode, st);
- 167. - cur.pvFriendsCont.innerHTML = frs.join('');
- 168. - (q && !frs.length ? hide : show)(cur.pvFriendsCont.parentNode);
- 169. - (q || tagged[vk.id] ? hide : show)(cur.pvFriendsCont.parentNode.firstChild);
- 170. - },
- 171. - cacheFriends: function(q) {
- 172. - if (q) {
- 173. - if (!cur.pvFriendsCache[q]) cur.pvFriendsCache[q] = {};
- 174. -
- 175. - var t = parseLatin(q);
- 176. - var queries = t ? [q, t] : [q];
- 177. - for (var i in queries) {
- 178. - query = queries[i];
- 179. - var searchIn = cur.pvFriendsCache[query.substr(0, 1).toLowerCase()];
- 180. - if (searchIn) {
- 181. - query = escapeRE(query);
- 182. - for (var i in searchIn) {
- 183. - var name = cur.pvFriendsList[i][1].replace(/[��]/, '�');
- 184. - if ((new RegExp('^' + query + '|\\s' + query + '|\\(' + query, 'gi')).test(name)) {
- 185. - cur.pvFriendsCache[q][i] = 1;
- 186. - }
- 187. - }
- 188. - }
- 189. - }
- 190. - return;
- 191. - }
- 192. - cur.pvFriendsCache = {};
- 193. - for (var i in cur.pvFriendsList) {
- 194. - var name = cur.pvFriendsList[i][1].replace(/[��]/, '�');
- 195. - var cursor = 0, letter;
- 196. - while (1) {
- 197. - letter = name.charAt(cursor).toLowerCase();
- 198. - if (!cur.pvFriendsCache[letter]) {
- 199. - cur.pvFriendsCache[letter] = {};
- 200. - }
- 201. - cur.pvFriendsCache[letter][i] = 1;
- 202. - cursor = name.indexOf(' ', cursor + 1);
- 203. - if (cursor == -1) break;
- 204. - ++cursor;
- 205. - }
- 206. - }
- 207. - },
- 208. - showFriends: function() {
- 209. - if (!cur.pvTagger || cur.pvTagger == 'loading') return;
- 210. -
- 211. - var r = cur.pvTagger.result();
- 212. - var xy = getXY(cur.pvPhoto.firstChild), x = xy[0] + r[0] + r[2] + 20;
- 213. - if (lastWindowWidth <= x + 190 + sbWidth() + 5) {
- 214. - if (xy[0] + r[0] <= 190 + 25) {
- 215. - x = lastWindowWidth - 190 - sbWidth() - 5;
- 216. - } else {
- 217. - x = xy[0] + r[0] - 190 - 20;
- 218. - }
- 219. - }
- 220. - var h = getSize(cur.pvFriends)[1], y = xy[1] + layerWrap.scrollTop + r[1] - ((layerWrap.offsetParent || {}).scrollTop || bodyNode.scrollTop || htmlNode.scrollTop);
- 221. - if (layerWrap.scrollTop + lastWindowHeight <= y + h + 5) {
- 222. - y = layerWrap.scrollTop + lastWindowHeight - h - 5;
- 223. - }
- 224. - cur.pvFriends.style.left = x + 'px';
- 225. - cur.pvFriends.style.top = y + 'px';
- 226. - if (!isVisible(cur.pvFriends)) {
- 227. - if (browser.msie || browser.mozilla) {
- 228. - show(cur.pvFriends);
- 229. - setTimeout(elfocus.pbind(cur.pvFriendName, false, false), 1);
- 230. - } else {
- 231. - fadeIn(cur.pvFriends, 200, function() {
- 232. - setTimeout(elfocus.pbind(cur.pvFriendName, false, false), 1);
- 233. - });
- 234. - }
- 235. - } else {
- 236. - animate(cur.pvFriends, {opacity: 1}, 200, function() {
- 237. - setTimeout(elfocus.pbind(cur.pvFriendName, false, false), 1);
- 238. - });
- 239. - }
- 240. - }
- 241. - };
- 242. -
- 243. - try{stManager.done('phototag.js');}catch(e){}
- ------
Advertisement
Add Comment
Please, Sign In to add comment