There are 2 previous versions of this script.
// ==UserScript==
// @name OdnoklassnikiGallery
// @namespace odnoklassniki
// @include http://*odnoklassniki.ru/*
// @include http://*odnoklassniki.ua/*
// ==/UserScript==
//
// 2008-11-16 - updated URL for UA domain, fixedlisting - added links to comments page,
// fixed voting for 0 and changing of already completed vote.
//
var obj = document.getElementById('panelPhotos');
if (obj) {
//alert(obj.childNodes[3]);
obj.childNodes[3].style.display = 'none';
var links = obj.getElementsByTagName('a');
var urls = new Array();
for (i=0; i<links.length; i++) {
if (links[i].className=="") {
urls.push(links[i].href);
links[i].style.display = 'none';
}
}
obj.innerHTML= "<br/><center><a class=\"aclclc\" name='herePhoto' href='#herePhoto' "+
"onclick='javascript:var links = document.getElementById(\"panelPhotos\").getElementsByTagName(\"a\"); "+
"var i=0; while (links[i].className!=\"\") i+=2; st = i;"+
" while (links[i].style.display!=\"none\") i+=2; "+
"if (i>st) { document.getElementById(\"photoNumber\").innerHTML=(i-st)/2; "+
"if (links[i-2]) { " +
"links[i].style.display =\"inline\"; links[i-2].style.display =\"none\"; "+
"document.getElementById(\"photoFrame\").src=links[i-2]; } } return false;'><<</a>"+
" <span id='photoNumber'>1</span>/"+urls.length+" "+
"<a class=\"aclclc\" href='#herePhoto' "+
"onclick='javascript: var links = document.getElementById(\"panelPhotos\").getElementsByTagName(\"a\"); var i=0; "+
" while (links[i].className!=\"\") i+=2; st=i; "+
" while (links[i].style.display!=\"none\") i+=2; "+
" if (links[i+2]) { document.getElementById(\"photoNumber\").innerHTML=(i-st+2)/2+1; "+
"links[i].style.display =\"inline\"; links[i+2].style.display =\"none\"; "+
"document.getElementById(\"photoFrame\").src=links[i+2];} return false;'>>></a></center><br/>"+
"<iframe FRAMEBORDER='0' width='700px' height='760px' id='photoFrame' src='"+urls[0]+"'>"+
"</iframe>"+
""+
"<br/>"+obj.innerHTML;
}
ulrParts = document.URL.split('?');
// extract photoId
objImage = document.getElementById('imgPhoto');
if (objImage) {
url = objImage.src;
re = /photoId=(\d+)/;
res = url.match(re);
photoId = res[1];
var formUrl = ulrParts[0]+'?st.cmd=userMarkPhoto&st.photoId='+photoId;
// correct display of mark 0
if (document.forms.length==0) {
divs = document.getElementsByTagName('div');
if (divs[2].className=='mark0small') {
divs[2].innerHTML = '<img src="http://profuel.info/odnoklassniki/0_28.png" />';
divs[2].style.display = 'inline';
divs[2].style.verticalAlign = "middle";
divs[2].style.height = "28px";
divs[2].style.width = "28px";
divs[2].style.fontSize = "25px";
}
// marks form
var marksForm = '<form action="'+formUrl+'" method="post">'+
'<div style="margin-top: 7px;"><input value="set" type="hidden" name="st.posted" />'+
'<input value="'+photoId+'" id="field_photoId" type="hidden" name="st.photoId" /></div>'+
'<table align="center"><tr><td>+</td><td align="center"><div class="mark6"></div></td><td align="center"><div class="mark5"></div></td><td align="center"><div class="mark4"></div></td><td align="center"><div class="mark3"></div></td><td align="center"><div class="mark2"></div></td><td align="center"><div class="mark1"></div></td><td>-</td></tr><tr><td> </td><td align="center"><input id="field_mark_6" value="6" type="radio" name="st.mark" /></td><td align="center"><input id="field_mark_5" value="5" type="radio" name="st.mark" /></td><td align="center"><input id="field_mark_4" value="4" type="radio" name="st.mark" /></td><td align="center"><input id="field_mark_3" value="3" type="radio" name="st.mark" /></td><td align="center"><input id="field_mark_2" value="2" type="radio" name="st.mark" /></td><td align="center"><input id="field_mark_1" value="1" type="radio" name="st.mark" /></td><td> </td></tr></table><div style="margin-top: 10px;"><input value="Переголосовать" type="submit" name="mark" /></div></form>';
document.body.innerHTML = document.body.innerHTML + marksForm;
} else
document.forms[0].action = formUrl;
var tbls = document.getElementsByTagName('table');
var useTable = 2;
if (tbls.length==2)
useTable = 1;
if (tbls.length<=3) {
// add mark 0
markTable = tbls[useTable];
row = markTable.rows[0];
newCell = row.insertCell(7);
newCell.innerHTML = '<img src="http://profuel.info/odnoklassniki/0.png" />';
row = markTable.rows[1];
newCell = row.insertCell(7);
newCell.innerHTML = '<center><input type="radio" name="st.mark" value="0" id="field_mark_0"/></center>';
// mark current radio
if (typeof divs != "undefined") {
if (divs.length>=2) {
cl = divs[2].className;
id = cl.substr(4,1);
var radio = document.getElementById('field_mark_'+id);
if (radio)
radio.checked=true;
}
}
}
}
