/* --- blogfrog.blogger.green.js ---
  skrypt osadza wklejkę do głosowania BlogFrog na blogach systemu Blogger (.blogspot.com)
  pokazuje wklejkę zarówno na stronie głównej (wszystkie notki) jak i na stronie z jedną notką  
  oparty jest o strukturę dokumentu z domyślnych szablonów i nie był sprawdzany na innych szablonach
  wstawia wklejkę w ciemnozielonym kolorze zakodowaną przez autorów blogfroga jako "/black" (sic!)
  
  więcej szczegółów -> http://sgk74exp.blox.pl/2007/12/wklejka-do-glosowania-BlogFrog-dla-Bloggera.html
  
  wersja 3 (2007.12.07)
  eskey (http://sgk74exp.blox.pl)  
  
  Nie dorzucałem do skryptu swojej stopki. 
  Byłbym jednak wdzięczny za pozostawienie w komentarzu do notki informacji o skorzystaniu z niego. 
  A jeśli ktoś ma ochotę wspomnieć o tym u siebie na blogu, to byłoby mi miło :)    
*/


//funkcje encode64 i encode pochodza z orginalnego skryptu wstawiającego widget BlogFroga. 
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) +
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);

   return output;
}

function encode(val) {
   return encode64(val).replace(new RegExp('/','g'),'_').replace(new RegExp('\\+','g'),'-').replace(new RegExp('=','g'),':');
}

function getElementsByClassName(parent, tagName, className) {
  var result = [];
  var rex = new RegExp("(^| )" + className + "( |$)");
  var elems = parent.getElementsByTagName(tagName);
  for(var i=0; i < elems.length; i++)
    if(rex.test(elems[i].className)) result.push(elems[i]);
  return result;
}

function insertBlogFrogVoting(){
   var posthdrs = getElementsByClassName(document, 'h3', 'post-title');		//stąd zbiera tytuły notek
   var postftrs = getElementsByClassName(document, 'div', 'post-footer');		//stąd zbiera obiekty,w które wstawi wklejkę   
   for (i=0; i<postftrs.length; i++) {
        srcElem = postftrs[i];
		var newElem = document.createElement("p");
		newElem.className = 'post-footer-line bf_voting';	
		urls = posthdrs[i].childNodes;		//link do notki jest w strukturze DOM elementem h3 (post-title)
		for (j=0; j<urls.length; j++) {if (urls[j].href) noteurl = urls[j].href;}	
		srcElem.appendChild(newElem);
		
		var bfvote = document.createElement("iframe");
		bfvote.src = "http://blogfrog.pl/index.php/wpisy/vote_button/"+encode(noteurl)+"/black";
		bfvote.width = 224;
		bfvote.height = 33;
		bfvote.frameBorder = 0;
		bfvote.setAttribute("scrolling","no");
		newElem.appendChild(bfvote);
   }
}

//bezpośrednie uruchamianie funkcji
insertBlogFrogVoting();

//opcja z EventListenerem
/*
if (window.addEventListener) {
	window.addEventListener('load', insertBlogFrogVoting, false);
}
else { 
	if (window.attachEvent) {window.attachEvent('onload', insertBlogFrogVoting);}
}
/**/