1. На проекте открылась регистрация только для продавцов. Для обычных пользователей будет открыта позже. Подробнее.
    P.S. Не надо скидывать ссылки на форумы, где у вас ноль сообщений. Подобные заявки будут отклонятся.
Скрыть объявление
Привет, Незнакомец! У тебя есть возможность Оставить комментарий в теме

PHP Бот для веб

Тема в разделе "PR0GRAMM1NG", создана пользователем Lamborghini Murcielago, 8 июн 2008.

  1. Lamborghini Murcielago 0x16

    Lamborghini Murcielago
    TS
    Регистрация:
    8 июн 2008
    Сообщения:
    21
    Симпатии:
    0
    ICQ:
    440191987
    а бота или программу которую можно установить на ucoz - не пробовали делать - правда смахивать на человека не будет))

    есть бот - к примеру устанавливается на ucoz - через него и рыщет по нету выполняя указанные действия ??

    может есть полезные исходники ??
     
  2. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.898
    Симпатии:
    191
    ICQ:
    943084
    Ну этот вопрос точно не по ирц, а веб программирование. Ну и смЫсл я этого бота не понял, для чего он там рЫщет и т.п. :)
    ЗЫ: для рЫсканья по инету есть гугл :)
     
  3. Lamborghini Murcielago 0x16

    Lamborghini Murcielago
    TS
    Регистрация:
    8 июн 2008
    Сообщения:
    21
    Симпатии:
    0
    ICQ:
    440191987
    для халявы в интернете )))

    к примеру автоматические клики на банеры и т.п))

    24 часа в сутки 7 - мь дней в неделю))
     
  4. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.898
    Симпатии:
    191
    ICQ:
    943084
    Таких кликеров навалом. Токо все они денежку стоят, как и все программЫ помогающие зарабатЫвать "халявное" бабло :)
     
  5. Lamborghini Murcielago 0x16

    Lamborghini Murcielago
    TS
    Регистрация:
    8 июн 2008
    Сообщения:
    21
    Симпатии:
    0
    ICQ:
    440191987
    все нашел выход - Flash проигрыватели лучшие боты))для сайта))

    в скорем времени сделаю - и отпишусь (если конечно получится)
     
  6. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.898
    Симпатии:
    191
    ICQ:
    943084
    Lamborghini Murcielago, давай отпишись, а то не совсем догнал про флешь проигрЫватели :)
     
  7. Lamborghini Murcielago 0x16

    Lamborghini Murcielago
    TS
    Регистрация:
    8 июн 2008
    Сообщения:
    21
    Симпатии:
    0
    ICQ:
    440191987
    я забил на эту тему..все ушло глубоко в DOM...

    пару скриптов....

    Как скачать видео из В Контакте

    Код:
    javascript:(function(){var s=document.createElement('script'); s.src='http://xantorohara.jino-net.ru/videovkontakte.js'; s.type='text/javascript'; document.getElementsByTagName('head')[0].appendChild(s); })();

    Для того чтобы скачать музыку из В Контакте, достаточно зайти на страницу с вашими аудиозаписями, и поместить этот код в адресную строку браузера, после чего нажать 'Enter' теперь нажимая на кнопку Play вы будите получать ссылки на файлы:


    Код:
    javascript:function operate(konfuze,loves,you,all_,xP){you=you.toString(10);while(you.length<5){you='0'+you;}document.getElementById('audio'+konfuze).innerHTML='<div><a href="http://cs'+loves+'.vkontakte.'+'ru/u'+you+'/audio/'+all_+'.mp3">'+document.getElementById('performer'+konfuze).innerHTML+' - '+document.getElementById('title'+konfuze).innerHTML+'</a></div><br />';}

    Код для добавления всех друзей в видеозаписи

    На страничке с видеофайлом необходимо нажать "Отметить" после этого ввести в адресную строчку следующий код и нажать Enter. вот и всё!

    Код:
    javascript:for(blabla=0;blabla<5000;blabla++){ var elem = document.getElementById('f'+blabla); if(elem == null) break; elem.onclick(); }
    
    Добавлено через 12 минут 55 секунд
    ..........еще одно ... можно ли исправить этот скрипт ??
    он предназначен для приглашения друзей в группу...

    Код для добовления всех друзей в группу....Раньше то при добавлении в группу надо было галочки помойму ставить, а теперь там просто на имя кликаешь и он добовляеться... незнаю ,что исправить ???

    Код:
    javascript:function addall(){var butt_all='<b onclick=\'';var chtulhu=document.getElementsByTagName("input");for(var azatoth=0;azatoth<chtulhu.length;azatoth++){ if (chtulhu[azatoth].type=="checkbox"){ butt_all+='addToInvite('+chtulhu[azatoth].name+');'; }}butt_all+='\'>[ДОБАВИТЬ ВСЕХ VKHELP]</b> '; j=0; var div_s=document.getElementsByTagName("div");for(var i=0;i<div_s.length;i++){ if (div_s[i].className=="pad"){ j++; if(j==2){ div_s[i].innerHTML=butt_all+div_s[i].innerHTML; }}} } addall();
     
    Последнее редактирование: 6 июл 2008
  8. ddd (•̪̀●́)=o/̵͇̿̿/'̿̿ ̿ ̿̿

    ddd
    Команда форума WebOwner WebVoice
    Регистрация:
    5 мар 2007
    Сообщения:
    2.898
    Симпатии:
    191
    ICQ:
    943084
    Эммм, ну надо его вообще переделЫвать, а не исправлять :) там теперь не через чекбоксЫ, а спомошью аджакс :)
    Если решение будет, то вЫложу.
     
  9. Lamborghini Murcielago 0x16

    Lamborghini Murcielago
    TS
    Регистрация:
    8 июн 2008
    Сообщения:
    21
    Симпатии:
    0
    ICQ:
    440191987
    Я нашел скрипт ))рабочий ))

    [admin=ddd]тЫ не хвастайся, а напиши.[/admin]

    Добавлено через 17 часов 34 минуты 30 секунд
    не совсем скрипт , а патч для контакта все в одном))

    4.4:

    * Пригласить всех теперь можно и на встречу.
    * Расположить боковое меню справа.
    * Подтверждать переход со страницы во время проигрывания аудио.

    4.3:

    * Исправлена функция "Пропустить версию".

    4.2:

    * Опция горизонтального расположения ссылок на разделы пользователей.

    4.1:

    * Пригласить всех друзей в группу.

    4.0:

    * Показывать ссылки для скачивания mp3.
    * Показывать ссылку для скачивания видео.
    * Убирать в результатах поиска ссылки на профили людей, выложивших аудиозапись.
    * Убирать повторяющиеся аудиозаписи.
    * Показывать кол-во дубликатов mp3.
    * Всегда открывать поле для отправки сообщения на стену.
    * Проверять наличие новых версий vkPatch.
    * Автоматическая проверка новых версий.

    3.0 - 1.0:

    * Добавлять ссылки на разделы профиля для пользователей с недоступной страничкой.
    * Показывать ссылку на комментарии в боковом меню.
    * Показывать кол-во новых комментариев рядом с ссылкой в боковом меню.
    *    (Данная опция может тормозить скрипт. Если у вас возникают ошибки, отключите её.)Запрашивать подтверждение перед отправкой анонимного мнения.
    * Убирать промежуточную страницу при переходе по внешней ссылке.
    * Убирать слова "Мои" в боковом меню.
    * Затенять слова "Мои" в боковом меню.

    Можно настраивать скрипт в "Моих настройках".



    скачать можно тут >>

    http://klinifini.livejournal.com/18734.html

    Добавлено через 1 минуту 51 секунду
    Код:
    var vkpathVersion = 4.4;
    
    	
    var GET = parseGET();
    // изменение настроек
    if (GET['vkpatch'] != undefined) {
    	GM_setValue('useLinks',GET['useLinks']?true:false);
    	GM_setValue('shortMenu',GET['shortMenu']?true:false);
    	GM_setValue('hideMyInMenu',GET['hideMyInMenu']?true:false);
    	GM_setValue('confirmOpinion',GET['confirmOpinion']?true:false);
    	GM_setValue('directLinks',GET['directLinks']?true:false);
    	GM_setValue('checkNewComments',GET['checkNewComments']?true:false);
    	GM_setValue('newComments',GET['newComments']?true:false);
    	GM_setValue('downAudio',GET['downAudio']?true:false);
    	GM_setValue('uniqAudio',GET['uniqAudio']?true:false);
    	GM_setValue('removeAudiosAuthor',GET['removeAudiosAuthor']?true:false);
    	GM_setValue('showDublCount',GET['showDublCount']?true:false);
    	GM_setValue('checkUpdates',GET['checkUpdates']?true:false);
    	GM_setValue('showReply',GET['showReply']?true:false);
    	GM_setValue('downVideo',GET['downVideo']?true:false);	
    	GM_setValue('inviteAll',GET['inviteAll']?true:false);	
    	GM_setValue('horLinks',GET['horLinks']?true:false);
    	GM_setValue('rightMenu',GET['rightMenu']?true:false);
    	GM_setValue('comfirmWhenPlaying',GET['comfirmWhenPlaying']?true:false);
    	
    	showMessageSettSaved();
    }
    
    if (GET['skipVersion'])
    	GM_setValue('skipVersion',GET['skipVersion']);
    
    var useLinks = GM_getValue('useLinks',true);
    var shortMenu = GM_getValue('shortMenu',false);
    var hideMyInMenu = GM_getValue('hideMyInMenu',true);
    var confirmOpinion = GM_getValue('confirmOpinion',true);
    var directLinks = GM_getValue('directLinks',false);
    var newComments = GM_getValue('newComments',true);
    var checkNewComments = GM_getValue('checkNewComments',true);
    var downAudio = GM_getValue('downAudio',true);
    var uniqAudio = GM_getValue('uniqAudio',true);
    var removeAudiosAuthor = GM_getValue('removeAudiosAuthor',true);
    var showDublCount = GM_getValue('showDublCount',true);
    var checkUpdates = GM_getValue('checkUpdates',true);
    var showReply = GM_getValue('showReply',true);
    var downVideo = GM_getValue('downVideo',true);
    var skipVersion = GM_getValue('skipVersion','0');
    var inviteAll = GM_getValue('inviteAll',true);
    var horLinks = GM_getValue('horLinks',false);
    var rightMenu = GM_getValue('rightMenu',false);
    var comfirmWhenPlaying = GM_getValue('comfirmWhenPlaying',true);
    
    
    // ### /*
    // Корректировка бокового меню
    if (shortMenu || hideMyInMenu) {
    	var elements = document.getElementById("nav").getElementsByTagName("a");
    	var parts = new Array;
    	var space;
    	for (i=0;i<=elements.length-1;i++) { 
    		space = elements[i].innerHTML.indexOf(" ");
    		if (space > -1) {
    			parts[0] = elements[i].innerHTML.substring(0,space);
    			parts[1] = elements[i].innerHTML.substring(space);
    			if (shortMenu && i>1) {
    				elements[i].innerHTML = parts[1];
    			} else if(hideMyInMenu && parts[0].length<=4) {
    				elements[i].innerHTML = "<font color='#9DCBBF'>"+parts[0]+"</font> "+parts[1];
    			}
    		}
    	}
    }
    // Исправление ссылок на прямые
    if (directLinks) {
    	var elements = document.getElementsByTagName("a");
    	var reg = new RegExp(/http:\/\/vkontakte\.ru\/away\.php\?to=([^&]+)/);
    	for (i=0;i<=elements.length-1;i++) { 
    			if (reg.test(elements[i].getAttribute("href"))) {
    				var link = decodeURIComponent(elements[i].getAttribute("href").match(reg)[1]);
    				elements[i].setAttribute("href",link);
    			}
    	}
    }
    
    // Меню справа
    if (rightMenu) {
    	var sideBar = document.getElementById("sideBar");
    	var pageBody = document.getElementById("pageBody");
    	
    	pageBody.setAttribute('style','float: left; margin-left: 17px; margin-right: 0px;');
    	sideBar.setAttribute('style','float: right; margin: 5px 20px 0px 4px;');
    }
    
    
    // Предупреждение при переходе со страницы во время проигрывания аудио
    if (comfirmWhenPlaying) {
    	document.getElementsByTagName('body')[0].setAttribute('onbeforeunload','function playingNow() {var links = document.getElementsByTagName("link");for(i in links){var ico = links[i];if (ico && ico.parentNode && (ico.rel == "shortcut icon")) {return (ico.getAttribute("href") == "/images/playicon.ico");}}} if (playingNow()) {return false};');
    }
    
    // Добавление пункта Комментарии
    if (newComments) {
    	var commLink = "<li><a id=\"comments_menuitem\" class=\"more\" href=\"news.php?act=bookmarks\">Комментарии</a></li>";
    	var menuBar = document.getElementById("nav");
    	if (menuBar.innerHTML.indexOf("<ol id=\"nav\" style=\"margin-bottom: 0px;\">")>-1) {	// есть хотя-бы один дополнительный пункт
    		menuBar.innerHTML = menuBar.innerHTML.replace("<ol id=\"nav\" style=\"margin-bottom: 0px;\">","<ol id=\"nav\" style=\"margin-bottom: 0px;\">"+commLink);
    	} else {
    		menuBar.innerHTML += "<div class=\"moreDiv\"><ol id=\"nav\" style=\"margin-bottom: 0px;\">"+commLink+"</ol></div>";
    	}
    }
    
    
    
    var useGMFunction = false;		// не использовать по возможности фунции GreaseMonkey
    // Проверка наличия новых комментариев
    if (newComments && checkNewComments) {
    	if (location.pathname == '/news.php' && GET['act'] == 'bookmarks') {
    		var comments = parseComments(document.body.innerHTML);
    		GM_setValue('comments',serializeComments(comments));
    	} else {
    		if (useGMFunction) {
    			GM_xmlhttpRequest({
    				method: 'GET',
    				url: 'http://vkontakte.ru/news.php?act=bookmarks',
    				headers: {
    					'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
    					'Accept': 'application/atom+xml,application/xml,text/xml',
            			'Cookie': document.cookie,
    					},
        			onload: checkComments
    			});
    		} else {
    			var xmlhttp = new XMLHttpRequest();
    			xmlhttp.open('GET', '/news.php?act=bookmarks', true);
    			xmlhttp.onreadystatechange = checkCommentsXML;
    			xmlhttp.send(null);
    		}
    	}
    }
    
    
    function checkCommentsXML() {
    	if (xmlhttp.readyState == 4) {
    		checkComments(xmlhttp);
    	}
    }
    // Проверка наличия новых комментариев
    function checkComments(responseDetails) {
    	if (responseDetails.status == 200) {
    	    	var actualComm = parseComments(responseDetails.responseText.split("<body>")[1].split("</body>")[0]);
    	    	var oldComm = unserializeComments(GM_getValue('comments',''));
    	    	
    	    	var newCount = countArrDiffs(oldComm,actualComm);
    	    	
    	    	if (newCount > 0) {
    	    		document.getElementById("comments_menuitem").innerHTML += " <b>("+newCount+")</b>";
    	    	}
       	}
    }
    // Поиск новых записей в массиве новых коментариев по сравнению с массивом просмотренных. Во-как!
    function countArrDiffs(oldComm,actualComm) {
    	var count = 0;	// кол-во новых
    	var foundedOld = 0;	// кол-во уже просмотренных из актуальных
    	var j = 0;
    	oldComm.sort();
    	actualComm.sort();
    	
    	for(i=0;i<=oldComm.length-1;i++) {
    		for(j=0;j<=actualComm.length-1;j++) {
    			if (oldComm[i] == actualComm[j]) {
    				foundedOld++;
    				break;
    			}
    		}
    	}
    	count = actualComm.length - foundedOld;	// кол-во новых = всего - просмотренных
    
    	return count;
    }
    function serializeComments(arr) {
    	var str = "";
    	for(i=0;i<=arr.length-1;i++) {
    		str += arr[i]+"\n";
    	}
    	return str;
    }
    function unserializeComments(str) {
    	var arr = str.split("\n");
    	arr.pop();
    	
    	return arr;
    }
    
    // Распарсивание странички комментов
    // Возвращает массив (id автора,время)
    function parseComments(content) {
    	var reg = new RegExp(/<td id=\"startQuote\">\s+\n\s+<div>(?:[^<>]+(?:<br>|<br \/>)*[^<>]+)*<span id=\"endQuote\">&nbsp;<\/span><\/div>(?:<br>|<br \/>)<small>\(<a href=[\"\']id([0-9]+)[\"\']>[^<>]+<\/a> <b>([^<>]+)<\/b>\)<\/small>/g);
    	
    	var res;
    	var arr = new Array();
    	var i = 0;
    	
    	while(res = reg.exec(content)) {
    		arr[i] = res[1] + "/" + res[2];
    		i++;
    	}
    	return arr;
    }
    
    
    
    if (checkUpdates == false) {	// сбрасываем пропуск версии при отключении обновлений
    	GM_setValue('skipVersion','0');
    	GM_setValue('lastUpdatesCheck','0');
    }
    var skipVersion = parseFloat(skipVersion);
    var checkVKUpdateNow = GET['checkVKUpdateNow']?true:false;
    // проверка обновления vkPatch
    if (checkUpdates || checkVKUpdateNow) {
    	var lastUpdatesCheck = GM_getValue('lastUpdatesCheck',0);
    	var lastDate = new Date(lastUpdatesCheck);
    	var nowDate = new Date();
    	
    	if (lastDate < nowDate.getTime() - 1*60*60*1000 || checkVKUpdateNow) {
    		GM_xmlhttpRequest({
    				method: 'GET',
    				url: 'http://klinifini.livejournal.com/19252.html',
    				headers: {
    					'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
    					'Accept': 'application/atom+xml,application/xml,text/xml',
    					},
        			onload: Update
    			});
    		
    		GM_setValue('lastUpdatesCheck',nowDate.toUTCString());
    	}
    }
    function Update(responseDetails) {
    	if (responseDetails.status == 200) {
    	    	var data = responseDetails.responseText.split("// ====== Script Info BEGIN")[1].split("// ====== Script Info END")[0].replace(/\n\/\/ /g,"\n");
    	    	var version = parseFloat(data.split("=== Version")[1].split("=== Changelog")[0]);
    	    	var clog = data.split("=== Changelog")[1].split("----------");
    	    	var changelog = new Array();
    	    	
    	    	var strings;
    	    	var vers;	    
    	    	var changes;
    	    	for(i=0;i<=clog.length-1;i++) {
    	    		strings = clog[i].split("\n");
    	    		strings.pop();
    	    		vers = parseFloat(strings[1]);
    	    		changes = strings.slice(2);
    	    		changelog.push(new Array(vers,changes));
    	    	}  // ченжлог есть
    	    	
    	    	if (version > vkpathVersion && (version > skipVersion || checkVKUpdateNow)) {
    	    		ShowNewVersionDialog(version,changelog)
    	    	} else if (checkVKUpdateNow) {
    	    		ShowNoNewVersion(vkpathVersion);
    	    	}
       	}
    }
    var hideFunc = "var vkPath_faderTimer = 0;function vkPath_hideBox() {vkPath_faderTimer = setInterval(vkPath_fadeBox, 5);vkPath_fadeBox();}function vkPath_fadeBox() {var vkPath_boxfader = document.getElementById('boxFader');if (vkPath_boxfader.style.opacity <= 0.0) {clearInterval(vkPath_faderTimer);vkPath_faderTimer = 0;vkPath_boxfader.style.display='none'};vkPath_boxfader.style.opacity = vkPath_boxfader.style.opacity - 0.28;vkPath_boxfader.style.filter = 'alpha(opacity='+vkPath_boxfader.style.opacity*100+')';}vkPath_hideBox();";
    function ShowNewVersionDialog(version,changelog) {
    	var title = "Обновление vkPatch";
    	var text = '<h1><font color="#444444"><b>Доступна новая версия vkPatch '+version+'</b></font></h1><br><br>Изменения в новой версии:<ul>';
    	for (i=0;i<=changelog[0][1].length-1;i++) {
    		text += "<li>"+changelog[0][1][i]+"</li>";
    	}
    	text += "</ul><div align='right'><a href='?skipVersion="+version+"'>Пропустить версию</a></div>";
    	showDialog("Обновление vkPatch",text,"Обновить","Отмена",hideFunc+"location.href='http://userscripts.org/scripts/source/29327.user.js'",hideFunc);	
    }
    function ShowNoNewVersion(version) {
    	var title = "Обновление vkPatch";
    	var text = '<center><h1><font color="#444444"><b>Ваша версия vkPatch '+version+' является самой последней</b></font></h1></center>';
    	showDialog("Обновление vkPatch",text,'',"Ок",'',hideFunc);
    }
    function showDialog(title,text,buttOk_label,buttCancel_label,buttOk_action,buttCancel_action,width) {
    	if (width == undefined) {
    		width = 400;
    	}
    	
    	var head = document.getElementsByTagName("head")[0];
    	var cssLink = "css/box.css";
    	if (head.innerHTML.indexOf(cssLink) == -1) {
    		head.innerHTML += "<script src=\"js/box2.js\">";
    		head.innerHTML += "<script src=\"js/box.js\">";
    		head.innerHTML += "<link rel='stylesheet' href='css/box.css' type='text/css'>";
    	}
    	
    	var buttonOk = "";
    	if (buttOk_label != '')
    		buttonOk = "<div id=\"button1Cont\" class=\"button1\" onmouseover=\"this.className='button1_hover';\" onmouseout=\"this.className='button1'\" onclick=\""+buttOk_action+"\"><div class=\"button1Line\"><div id=\"button1\">"+buttOk_label+"</div></div></div>";
    	
    	var buttonCancel = "";
    	if (buttCancel_label != '')
    		var buttonCancel = "<div id=\"button2Cont\" class=\"button2\" onmouseover=\"this.className='button2_hover';\" onmouseout=\"this.className='button2'\" onclick=\""+buttCancel_action+"\"><div class=\"button2Line\"><div id=\"button2\">"+buttCancel_label+"</div></div></div>";
    	if (document.getElementById("boxFader") != null) {
    		document.getElementById("boxFader").id = "nahui";
    	}
    	document.getElementById("boxHolder").innerHTML = "<div id=\"boxFader\" style=\"display: block; opacity: 1; left: 494.5px; top: 117.5px;\"><div style=\"width: "+width+"px;\" id=\"boxWrap\"><div style=\"display: block;\" id=\"boxBody\"><div id=\"nameLabel\"><div id=\"boxTitle\">"+title+"</div></div><div id=\"boxMessage\">"+text+"</div><div class=\"buttons\"><table align=\"right\"><tbody><tr><td>"+buttonCancel+"</td></tr></tbody></table><table align=\"right\"><tbody><tr><td>"+buttonOk+"</td></tr></tbody></table></div></div></div><iframe id=\"boxGoodFrame\" style=\"display: none; width: 1000px; height: 1000px;\"></iframe></div>";
    	
    }
    
    // Открывать поле отправки сообщения
    if (showReply && document.getElementById("r") != null) {
    	document.getElementById("r").style.display="block";
    	document.getElementById("br").style.display="block";
    }
    
    
    // ### /groups.php
     
    Последнее редактирование: 12 июл 2008
  10. Lamborghini Murcielago 0x16

    Lamborghini Murcielago
    TS
    Регистрация:
    8 июн 2008
    Сообщения:
    21
    Симпатии:
    0
    ICQ:
    440191987
    Код:
    // Пригласить всех
    if ((location.pathname == '/groups.php' || location.pathname == '/events.php') && inviteAll) {
    	var elements = document.getElementsByTagName('div');
    	var reg = new RegExp(/return addToInvite\(([0-9]+)\)/);
    	var element;
    	for (i=0;i<=elements.length-1;i++) {
    		if (elements[i].className == 'iPanel') 
    			element = elements[i];
    	}
    	
    	if (element != undefined) {
    		elements = element.getElementsByTagName("div");
    		var action = '';
    		var id;
    		for (i=0;i<=elements.length-1;i++) {
    			id = elements[i].getAttribute('onclick').match(reg)[1];
    			action += 'if(document.getElementById("toinvite'+id+'") != null){delToInvite('+id+')};addToInvite('+id+');';
    		}
    		element.getElementsByTagName("tbody")[0].innerHTML = "<tr style=''><td><div class='friendRow' onclick='"+action+"'><b>Пригласить всех</b></div></td></tr>" + element.getElementsByTagName("tbody")[0].innerHTML;
    	}
    	
    }
    
    // ###   /video123
    if (/\/video[0-9]/.test(location.pathname) && downVideo) {
    	var script = document.getElementsByTagName("script")[17].innerHTML;	// 17 - номер по счету скрипта… если изменят, придется менять…
    	var vtag = script.match(/'vtag','([^']*)'/)[1];
    	var host = script.match(/'host','([^']*)'/)[1];
    	var vkid = script.match(/'vkid','([^']*)'/)[1];
    	var link = src = "http://"+host+"/assets/videos/"+vtag+vkid+".vk.flv";
    	
    	document.getElementById("videoactions").innerHTML += "<a href='"+link+">Скачать</a>";
    }
    
    // ###   /search.php
    if (location.pathname == '/search.php' && useLinks) {
    
    	var reg_notfriend = new RegExp(/<a href=\"friend.php\?act=add&amp;id=([0-9]+)&amp;h=([0-9a-zA-z]+)\">([^<]*)<\/a><\/li>/);
    	var reg_friend = new RegExp(/<a href=\"friend.php\?act=remove&amp;id=([0-9]+)\">([^<]*)<\/a><\/li>/);
    	var reg_nopage = new RegExp(/<ul id=\"nav\" style=\"margin: 0px; width: 150px;\">\s*<\/ul>/g);
    	var idReg = new RegExp(/profile.php\?id=([0-9]+)/);
    	
    
    	if (document.getElementById("searchResults") != null) {
    		var resultsElement = document.getElementById("searchResults").getElementsByTagName("div");
    		for (i=0;i<=resultsElement.length-1;i++) {
    			if (resultsElement[i].className == 'result clearFix') {
    			
    				var userid;
    				if (idReg.test(resultsElement[i].innerHTML)) {
    					userid = resultsElement[i].innerHTML.match(idReg)[1];						
    				} else {
    					userid = resultsElement[i].innerHTML.match(reg_notfriend)[1];
    				}
    				
    				var notFriendLinks,friendLinks,deletedLinks;
    				if (!horLinks) {
    					notFriendLinks = "<li>&nbsp;</li><li>" + getLinksForNotFriend(userid).join("</li>\n<li>") + "</li></ul>";
    					friendLinks = "<li>&nbsp;</li><li>" + getLinksForDeleted(userid).join("</li>\n<li>") + "</li></ul>";
    					deletedLinks = "<ul id=\"nav\" style=\"margin: 0px; width: 150px;\"><li>" + getLinksForDeleted(userid).join("</li>\n<li>") + "</li></ul>";
    				} else {
    					notFriendLinks = "</ul><tr><td colspan='3'><br><center>| " + getLinksForNotFriend(userid).join(" | ") + " |</center></td></tr>";
    					friendLinks = "</ul><tr><td colspan='3'><br><center>| " + getLinksForDeleted(userid).join(" | ") + " |</center></td></tr>";
    					deletedLinks = "<tr><td colspan='3'><br><center>| " + getLinksForDeleted(userid).join(" | ") + " |</center></td></tr>";
    				}
    				
    				resultsElement[i].innerHTML = resultsElement[i].innerHTML.replace(reg_notfriend,"<ul id=\"nav\" style=\"margin: 0px; width: 150px;\"><a href=\"friend.php?act=add&amp;id=$1&amp;h=$2\">$3</a></li>"+notFriendLinks);
    				resultsElement[i].innerHTML = resultsElement[i].innerHTML.replace(reg_friend,"<ul id=\"nav\" style=\"margin: 0px; width: 150px;\"><a href=\"friend.php?act=remove&amp;id=$1\">$2</a></li>"+friendLinks);
    				resultsElement[i].innerHTML = resultsElement[i].innerHTML.replace(reg_nopage,deletedLinks);	
    			}
    		}		
    	}
    	
    }
    
    // ## /audio.php
    var downloadImg = "data:image/png;base64,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";
    //GM_addStyle("#downloadmp3 {background:transparent url("+downloadImg+") no-repeat scroll 100% 100%;padding-right:17px;padding-top:5px;");
    
    
    if (location.pathname == '/audio.php' && (downAudio || uniqAudio || removeAudiosAuthor)) {
    	var audioL = document.getElementById("audios");
    	if (audioL == null) {
    		audioL = document.getElementById("bigResult");
    	}
    	var elements = audioL.getElementsByTagName("div");
    	
    	var regDownLink = new RegExp(/operate\([0-9]+,([0-9]+),([0-9]+),\'([0-9a-zA-z]+)\',[0-9]+\);/);
    	var regInfo = new RegExp(/<b id=\"performer[0-9]+\">([^<]*)<\/b> - <span id=\"title[0-9]+\">([^]*)<\/span>[^]*/);
    	var regRemove = new RegExp(/<small>\((?:<a href=\"id[0-9]+\">[^<]+<\/a>)?\)<\/small>/);
    	var currElement;
    	var uniqId = 0;
    	var audioList = Array();
    	
    	for (elNum=0;elNum<=elements.length-1;elNum++) {
    		currElement = elements[elNum];
    		if (currElement.className != "audioRow") {
    			continue;
    		}
    
    		if (downAudio) {
    			var onclck = currElement.getElementsByTagName("img")[0].getAttribute("onclick");
    			var res = onclck.match(regDownLink);
    			res[2] = strRepeat('0',5-res[2].length)+res[2];
    			var href = "http://cs"+res[1]+".vkontakte.ru/u"+res[2]+"/audio/"+res[3]+".mp3";
    		
    			//currElement.getElementsByTagName("tr")[0].innerHTML = "<td style=\"width: 20px;padding-top: 5px;padding-right: 5px; vertical-align: top;\"><img id='downloadmp3' width=\"17\" height=\"16\" class=\"playimg\" onClick=\"javascript:alert('A')\"></td>" + currElement.getElementsByTagName("tr")[0].innerHTML;
    			currElement.getElementsByTagName("td")[0].setAttribute("style","width: 52px;");
    			currElement.getElementsByTagName("td")[0].innerHTML = "<a href=\""+href+"\" target='_blank'><img src=\""+downloadImg+"\"></a> " + currElement.getElementsByTagName("td")[0].innerHTML;
    		}
    		
    		
    
    		if (uniqAudio) {
    			var info = currElement.getElementsByTagName("div")[0];
    			var dur = currElement.getElementsByTagName("div")[1].innerHTML;
    		
    			var res = info.innerHTML.match(regInfo);
    			if (res == null) {
    				alert("Ошибка парсинга:\n"+info.innerHTML);
    			}
    			
    			
    			if (addAudioInfo(res[1],res[2],dur,uniqId) == false) {
    				//alert("Повтор: \n"+res[0]+"\n"+res[1]+"\n"+res[2]+"\n"+res[3]);
    				currElement.setAttribute("style","display: none;");
    			} else {
    				// Показывать кол-во дубликатов
    				if (showDublCount) {
    					info.innerHTML += "<span style=\"color: #9DCBBF\" id=\"audioInfo"+uniqId+"\" title=\"Кол-во дубликатов\"></div>";
    					uniqId++;
    				}
    			}
    		}
    		
    		if (removeAudiosAuthor) {
    			currElement.getElementsByTagName("td")[1].innerHTML = currElement.getElementsByTagName("td")[1].innerHTML.replace(regRemove,'');
    		}
    		
    	}
    }
    
    function addAudioInfo(perf,titl,dur,id) {
    	perf = perf.toLowerCase().replace(/\s+/g,' ').replace(/^\s+/g,'').replace(/\s+$/g,'').replace(/^the /g,'');
    	titl = titl.toLowerCase().replace(/\s+/g,' ').replace(/^\s+/g,'').replace(/\s+$/g,'');
    	if (dur.length == 0) {
    		len = 0;
    	} else {
    		len = parseInt(dur.split(":")[0]*60)+parseInt(dur.split(":")[1]);		// Внимание! Предусмотрен только формат xx:xx. Формат x:xx:xx я не встречал
    	}
    	//var infoHash = crc32(perf)+"/"+crc32(titl)+"/"+dur;
    	
    	//parseInt 
    	// Поиск идентичного элемента
    	for(j=0;j<=audioList.length-1;j++) {
    		if (audioList[j]['perf'] == perf && audioList[j]['titl'] == titl && Math.abs(len-audioList[j]['len']) <= 5) {
    			if (showDublCount) {
    				audioList[j]['count']++;
    				document.getElementById("audioInfo"+audioList[j]['id']).innerHTML = "("+audioList[j]['count']+")";
    			}
    			return false;
    		}
    	}
    	
    	var arr = new Array();
    	arr['perf'] = perf;
    	arr['titl'] = titl;
    	arr['len'] = len;
    	arr['id'] = id;
    	arr['count'] = 0;
    	audioList.push(arr);
    	
    	return true;
    }
    
    // ### /profile.php или id*
    if (location.pathname == '/profile.php' || location.pathname.substring(0,3) == '/id') {
    	
    	// Ссылки на удалённой странице
    	var reg = new RegExp(/<div style=\"margin: 100px auto; font-size: 14px; text-align: center; height: 200px;\">([^<]*)<\/div>/);
    	if (reg.test(document.getElementById("userProfile").innerHTML) && useLinks) {
    		var userid = getIDFromURI();
    		var deletedLinks;
    		if (!horLinks) {
    			deletedLinks = "<div style=\"margin: 100px auto; font-size: 14px; text-align: center;\">$1<\/div><br><div id=\"leftColumn\"><div id=\"profileActions\">"+getLinksForDeleted(userid).join("\n")+"<\/div><\/div>"
    		} else {
    			deletedLinks = "<div style=\"margin: 100px auto; font-size: 14px; text-align: center;\">$1<\/div><div><center>| "+getLinksForDeleted(userid).join(" | ")+" |</center><\/div>";
    		}
    		document.getElementById("userProfile").innerHTML = document.getElementById("userProfile").innerHTML.replace(reg,deletedLinks);
    	}
    	
    	// Подтверждение отправки анонимного мнения
    	if (document.getElementById("opinions") != null && confirmOpinion) {
    		var element = document.getElementById("opinions").getElementsByTagName("span")[0];
    		element.innerHTML = element.innerHTML.replace(/<a href=\"javascript: postOpinion\(\)\">([^]+)<\/a>/,"<a href=\"javascript:if(confirm('Вы действительно хотите отправить анонимное сообщение?')){postOpinion();}\">$1<\/a>");
    	}
    
    }
    
    
    // ## /settings.php
    if (location.pathname == '/settings.php' && GET['act'] == undefined) {
    	
    	var contentElements = document.getElementById("content").getElementsByTagName("div");
    	var editorPanelElements
    	for (i=0;i<=contentElements.length-1;i++) {
    		if (contentElements[i].className == "editorPanel clearFix") {
    			editorPanelElements = contentElements[i];
    			break;
    		}
    	}
    		
    	chkLinks = getChecked(useLinks);
    	chkShortMenu = getChecked(shortMenu);
    	chkHideMyInMenu = getChecked(hideMyInMenu);
    	chkConfirmOpinion = getChecked(confirmOpinion);
    	chkDirectLinks = getChecked(directLinks);
    	chkNewComments = getChecked(newComments);
    	chkCheckNewComments = getChecked(checkNewComments);
    	chkDownAudio = getChecked(downAudio);
    	chkUniqAudio = getChecked(uniqAudio);
    	chkRemoveAudiosAuthor = getChecked(removeAudiosAuthor);
    	chkShowDublCount = getChecked(showDublCount);
    	chkCheckUpdates = getChecked(checkUpdates);
    	chkShowReply = getChecked(showReply);
    	chkDownVideo = getChecked(downVideo);
    	chkInviteAll = getChecked(inviteAll);
    	chkHorLinks = getChecked(horLinks);
    	chkRightMenu = getChecked(rightMenu);
    	chkComfirmWhenPlaying = getChecked(comfirmWhenPlaying);
    	
    	
    	
    	editorPanelElements.innerHTML += "     <div id=\"cname\" class=\"settingsPanel\">"+
    		"<h4>vkPatch Настройки <small><font color='#98A7B5'>версия "+vkpathVersion+"</font></small></h4><div align='right'><small><a href='?checkVKUpdateNow=1'>Проверить обновление</a></small></div>"+
    		"<form method=\"GET\" id=\"vkpatchSettings\" name=\"vkpatchSettings\" action=\"\"><input type=\"hidden\" name=\"vkpatch\">"+
    		"<table class=\"editor\" style=\"margin-left: 0px; width: 420px;\" border=\"0\" cellspacing=\"0\">"+
    		"<tbody>"+
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Ссылки</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"links\" name=\"useLinks\" value=\"1\" "+chkLinks+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Добавить ссылки на разделы профиля для пользователей с недоступной страничкой.</small>"+
    			"</td>"+
    			"</tr>"+
    		
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Ссылки горизонтально</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"horLinks\" name=\"horLinks\" value=\"1\" "+chkHorLinks+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Располагать ссылки на разделы горизонтально.</small>"+
    			"</td>"+
    			"</tr>"+
    		
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Комментарии</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"newComments\" name=\"newComments\" value=\"1\" "+chkNewComments+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Показать ссылку на комментарии в боковом меню.</small>"+
    			"</td>"+
    			"</tr>"+
    				
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Новые комментарии</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"checkNewComments\" name=\"checkNewComments\" value=\"1\" "+chkCheckNewComments+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Показать кол-во новых комментариев рядом с ссылкой в боковом меню.</small>"+
    			"</td>"+
    			"</tr>"+
    		
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Скачать mp3</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"downAudio\" name=\"downAudio\" value=\"1\" "+chkDownAudio+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Добавить ссылки для скачивания mp3.</small>"+
    			"</td>"+
    			"</tr>"+
    			
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Скачать видео</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"downVideo\" name=\"downVideo\" value=\"1\" "+chkDownVideo+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Добавить ссылку для скачивания видео.</small>"+
    			"</td>"+
    			"</tr>"+
    				
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Подтверждение мнения</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"confirmOpinion\" name=\"confirmOpinion\" value=\"1\" "+chkConfirmOpinion+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Запрашивать подтверждение перед отправкой анонимного мнения.</small>"+
    			"</td>"+
    			"</tr>"+	
    		
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Прямые ссылки</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"directLinks\" name=\"directLinks\" value=\"1\" "+chkDirectLinks+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Убрать промежуточную страницу при переходе по внешней ссылке.</small>"+
    			"</td>"+
    			"</tr>"+
    				
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Авторы аудио</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"removeAudiosAuthor\" name=\"removeAudiosAuthor\" value=\"1\" "+chkRemoveAudiosAuthor+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Убрать в результатах поиска ссылки на профили людей, выложивших аудиозапись.</small>"+
    			"</td>"+
    			"</tr>"+	
    				
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Дубликаты mp3</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"uniqAudio\" name=\"uniqAudio\" value=\"1\" "+chkUniqAudio+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Убрать повторяющиеся аудиозаписи.</small>"+
    			"</td>"+
    			"</tr>"+
    			
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Кол-во дубликатов</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"showDublCount\" name=\"showDublCount\" value=\"1\" "+chkShowDublCount+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Показать кол-во дубликатов mp3.</small>"+
    			"</td>"+
    			"</tr>"+
    		
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Короткое меню</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"shortMenu\" name=\"shortMenu\" value=\"1\" "+chkShortMenu+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Убрать слова \"Мои\" в боковом меню.</small>"+
    			"</td>"+
    			"</tr>"+
    				
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Затенить слово \"Мои\"</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"shortMenu\" name=\"hideMyInMenu\" value=\"1\" "+chkHideMyInMenu+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Затенить слова \"Мои\" в боковом меню.</small>"+
    			"</td>"+
    			"</tr>"+
    				
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Сообщение на стену</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"showReply\" name=\"showReply\" value=\"1\" "+chkShowReply+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Всегда открывать поле для отправки сообщения на стену.</small>"+
    			"</td>"+
    			"</tr>"+
    			
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Пригласить всех</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"inviteAll\" name=\"inviteAll\" value=\"1\" "+chkInviteAll+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Добавить кнопку для приглашения всех друзей в группу или на встречу (ограничение сайта: не более 40 человек в сутки).</small>"+
    			"</td>"+
    			"</tr>"+
    				
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Меню справа</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"rightMenu\" name=\"rightMenu\" value=\"1\" "+chkRightMenu+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Расположить боковое меню справа (при медленной работе может „прыгать“).</small>"+
    			"</td>"+
    			"</tr>"+
    			
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Прерывание аудио</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"comfirmWhenPlaying\" name=\"comfirmWhenPlaying\" value=\"1\" "+chkComfirmWhenPlaying+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Подтверждать переход со страницы во время проигрывания аудио.</small>"+
    			"</td>"+
    			"</tr>"+				
    							
    			"<tr>"+
    			"<td class=\"label\" style=\"text-align: right; vertical-align: top;\">Обновление</td>"+
    			"<td style=\"width: 20px; text-align: right; vertical-align: top;\">"+
    			"<input id=\"checkUpdates\" name=\"checkUpdates\" value=\"1\" "+chkCheckUpdates+" type=\"checkbox\"></td>"+
    			"<td style=\"padding: 4px 0px 10px 10px; width: 280px; text-align: left;\"><small>Проверять наличие новых версий vkPatch.</small>"+
    			"</td>"+
    			"</tr>"+		
    		"</tbody></table>"+
    		"<div style=\"height: 30px; margin-left: 143px;\">"+
    		"<ul class=\"nNav\"><li>"+
    		"<b class=\"nc\"><b class=\"nc1\"><b></b></b><b class=\"nc2\"><b></b></b></b>"+
    		"<span class=\"ncc\"><a href=\"javascript:document.vkpatchSettings.submit();\">Сохранить</a></span>"+
    		"<b class=\"nc\"><b class=\"nc2\"><b></b></b><b class=\"nc1\"><b></b></b></b>"+
    		"</li></ul></div></form></div>";
    }
    
    
     
  11. Lamborghini Murcielago 0x16

    Lamborghini Murcielago
    TS
    Регистрация:
    8 июн 2008
    Сообщения:
    21
    Симпатии:
    0
    ICQ:
    440191987
    Код:
    // Ставить галку?
    function getChecked(variable) {
    	return variable ? 'checked="checked"' : '';
    }
    
    // Вырываем ID пользователя ил URI
    function getIDFromURI() {
    	var URIpart = location.search;
    	if (URIpart.length > 0) {
    		URIpart = URIpart.substring(1);
    		URIargs = URIpart.split('&');
    		for (i=0;i<=URIargs.length-1;i++) {
    			if (URIargs[i].substring(0,2) == 'id') {
    				return URIargs[i].substring(3);
    			}
    		}
    	}
    	
    	if (location.pathname.substring(0,3) == '/id')
    		return location.pathname.substring(3);
    }
    
    // Формирование ссылок для удаленных страниц
    function getLinksForDeleted(userid) {
    	links = new Array();
    	links[0] = "<a href=\"http://vkontakte.ru/wall.php?id="+userid+"\">Стена</a>";
    	links[1] = "<a href=\"http://vkontakte.ru/notes.php?id="+userid+"\">Заметки</a>";
    	links[2] = "<a href=\"http://vkontakte.ru/groups.php?id="+userid+"\">Группы</a>";
    	links[3] = "<a href=\"http://vkontakte.ru/apps.php?mid="+userid+"\">Приложения</a>";
    	links[4] = "<a href=\"http://vkontakte.ru/questions.php?mid="+userid+"\">Вопросы</a>";
    	links[5] = "<a href=\"http://vkontakte.ru/opinions.php?id="+userid+"\">Мнения</a>";
    	links[6] = "<a href=\"http://vkontakte.ru/video.php?act=tagview&id="+userid+"\">Видео с…</a>";
    	links[7] = "<a href=\"http://vkontakte.ru/photos.php?act=user&id="+userid+"\">Фотографии с…</a>";
    	links[8] = "<a href=\"http://vkontakte.ru/audio.php?id="+userid+"\">Аудио</a>";
    	links[9] = "<a href=\"http://vkontakte.ru/video.php?id="+userid+"\">Видео</a>";
    	links[10] = "<a href=\"http://vkontakte.ru/photos.php?id="+userid+"\">Фото</a>";
    	return links;
    }
    // Формирование ссылок для недрузей
    function getLinksForNotFriend(userid) {
    	links = new Array();
    	links[0] = "<a href=\"http://vkontakte.ru/notes.php?id="+userid+"\">Заметки</a>";
    	links[1] = "<a href=\"http://vkontakte.ru/groups.php?id="+userid+"\">Группы</a>";
    	links[2] = "<a href=\"http://vkontakte.ru/apps.php?mid="+userid+"\">Приложения</a>";
    	links[3] = "<a href=\"http://vkontakte.ru/questions.php?mid="+userid+"\">Вопросы</a>";
    	links[4] = "<a href=\"http://vkontakte.ru/video.php?act=tagview&id="+userid+"\">Видео с…</a>";
    	links[5] = "<a href=\"http://vkontakte.ru/photos.php?act=user&id="+userid+"\">Фотографии с…</a>";
    	links[6] = "<a href=\"http://vkontakte.ru/audio.php?id="+userid+"\">Аудио</a>";
    	links[7] = "<a href=\"http://vkontakte.ru/video.php?id="+userid+"\">Видео</a>";
    	links[8] = "<a href=\"http://vkontakte.ru/photos.php?id="+userid+"\">Фото</a>";
    	return links;
    }
    
    // Сообщение - Настройки сохранины
    function showMessageSettSaved() {
    	var contentElements = document.getElementById("content");
    	message = 'Настройки vkPatch сохранены.';
    	contentElements.innerHTML = contentElements.innerHTML.replace(/(<div class=\"clearFix tBar\">[^]+)<div class=\"editorPanel clearFix\">/,"$1<div id=\"messageWrap\"><div id=\"message\">"+message+"</div></div><div class=\"editorPanel clearFix\">");
    
    }
    
    // Распарсивание URI для получения аналога массива GET в PHP
    function parseGET(str){  
    
    	var anchor = "";
    	var GET = Array(); 
    	
        var str = location.search.substring(1);
        if(str.indexOf('#')!=-1)    
        {    
            anchor = str.substr(str.indexOf('#')+1); 
            str = str.substr(0,str.indexOf('#'));
        }
    
        params = str.split('&');
        for (i=0; i<params.length; i++)
        {
            var keyval = params[i].split('=');
            GET[keyval[0]]=keyval[1];
        }
         
    return (GET); 
    };
    
    /**
    *
    *  Javascript crc32
    *  http://www.webtoolkit.info/
    *
    **/
    
    function crc32 (str) {
    
        function Utf8Encode(string) {
            string = string.replace(/\r\n/g,"\n");
            var utftext = "";
    
            for (var n = 0; n < string.length; n++) {
    
                var c = string.charCodeAt(n);
    
                if (c < 128) {
                    utftext += String.fromCharCode(c);
                }
                else if((c > 127) && (c < 2048)) {
                    utftext += String.fromCharCode((c >> 6) | 192);
                    utftext += String.fromCharCode((c & 63) | 128);
                }
                else {
                    utftext += String.fromCharCode((c >> 12) | 224);
                    utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                    utftext += String.fromCharCode((c & 63) | 128);
                }
    
            }
    
            return utftext;
        };
    
        str = Utf8Encode(str);
    
        var table = "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D";
    
        if (typeof(crc) == "undefined") { crc = 0; }
        var x = 0;
        var y = 0;
    
        crc = crc ^ (-1);
        for( var i = 0, iTop = str.length; i < iTop; i++ ) {
            y = ( crc ^ str.charCodeAt( i ) ) & 0xFF;
            x = "0x" + table.substr( y * 9, 8 );
            crc = ( crc >>> 8 ) ^ x;
        }
    
        return crc ^ (-1);
    
    };
    // Алерт для массивов
    function aalert(arr) {
    	alert(formatArray(arr,0));
    }
    // Преобразовывает многомерный массив в строку
    function formatArray(arr,level) {
    	if (level == undefined) {
    		level = 0;
    	}
    	var str="";
    	for (key in arr) {
    		if (typeof(arr[key]) == 'object' && arr[key] instanceof Array) {
    			str += "\n"+strRepeat("\t",level)+"["+key+"]: "+formatArray(arr[key],level+1);
    		} else {
    			str += "\n"+strRepeat("\t",level)+"["+key+"]: “"+arr[key]+"”";
    		}
    	}
    	if (level == 0) {
    		str = str.substr(1);
    	}
    	return str;
    }
    function strRepeat(str,n) {
    	if (n <= 0) {
    		return ''
    	} else {
    		return str+strRepeat(str,n-1);
    	}
    }
     
    // Добавление ссылки на ЖЖ
    document.getElementById("bFooter").innerHTML = document.getElementById("bFooter").innerHTML.replace(/<ul class=\"bNav\">([^]+)<\/ul>/,"<ul class=\"bNav\">$1<li><a href=\"http://klinifini.livejournal.com/tag/vkPatch\" target=\"_blank\">vkPatch</a></li></ul>");
    
    
    Добавлено через 15 часов 59 минут 16 секунд
    не работает ...уже (((
     
    Последнее редактирование: 13 июл 2008