//
//  Moduł pokazujacy na liscie komentarzy avatary MyBlogLog
//  DeBergerac (c) 2007 http://debergerac.blox.pl
//  Poprawki: eskey (c) 2008, http://sgk74exp.blox.pl/
//
//  http://pub.mybloglog.com/coiserv.php?href=http://nicalbonic.blox.pl&n=
//  


AvatarElement = function(imgElement,anchElement,blogAddress,commentId,isBlip,blipUser)
{
	this.ImgElement = imgElement;
	this.AnchElement = anchElement;
	this.BlogAddress = blogAddress;
	this.CommentId = commentId;
	this.IsBlip = isBlip;
	this.BlipUser = blipUser;
}
	   
var AvatarTable = [];
var AvatarTableCount = 0;
var ProcessedAvatar = 0;
var BloxAvatar = new Image();

function getJSON(url)
{
   var e = document.createElement("script");
   e.src = url;
   e.type="text/javascript";
   document.getElementsByTagName("head")[0].appendChild(e); 
}

// Funkcja przetwarza pojedynczy element tablicy awatarów

function ProcessAvatar( avatarIndex )
{
	 if( avatarIndex<AvatarTableCount )
	 {	 
	 	 if( AvatarTable[ProcessedAvatar].IsBlip==1 )
	    {
		 	 getJSON( "http://blip.pl/users/"+AvatarTable[ProcessedAvatar].BlipUser+"/avatar.json?callback=BlipGot" );
	    }
	    else
	    {
			 BloxAvatar = new Image();
			 
			 // User podał adres blogu więc sprawdzamy czy istnieje na jego blogu plik avatar.jpg lub avatar.js
			 
			 BloxAvatar.onerror = function() { DefaultAvatarError(); }
			 BloxAvatar.onload = function() { DefaultAvatarLoaded(); }	 
			 BloxAvatar.src = AvatarTable[ProcessedAvatar].BlogAddress + "/resource/avatar.jpg";
	    }
    }
}


function BlipGot( obj )
{
    AvatarTable[ProcessedAvatar].AnchElement.href = AvatarTable[ProcessedAvatar].BlogAddress;
    AvatarTable[ProcessedAvatar].ImgElement.src = "http://blip.pl" + obj.url_50;
    
    var BlipImgElem = document.createElement("img");           
    BlipImgElem.width = 26;
    BlipImgElem.height = 17;
    BlipImgElem.vspace = 0;
    BlipImgElem.hspace = 0;
    BlipImgElem.src = "http://blip.pl/images/logos/blip26.png";
    BlipImgElem.style.position = "absolute";
    BlipImgElem.style.top = "20px";
    BlipImgElem.style.left = "-10px";
    BlipImgElem.style.zIndex = 100;
    BlipImgElem.style.cssFloat = "left";
    BlipImgElem.style.styleFloat = "left";
    
    AvatarTable[ProcessedAvatar].AnchElement.parentNode.style.position = "relative";
    AvatarTable[ProcessedAvatar].AnchElement.parentNode.insertBefore(BlipImgElem,AvatarTable[ProcessedAvatar].AnchElement);
    //BaseElem.parentNode.insertBefore(AnchElem,BaseElem);
    
    if( ProcessedAvatar<AvatarTableCount )
	 {
	    ProcessedAvatar++;
	    ProcessAvatar( ProcessedAvatar );
	 }
}


function DefaultAvatarLoaded()
{
    AvatarTable[ProcessedAvatar].AnchElement.href = AvatarTable[ProcessedAvatar].BlogAddress;
    AvatarTable[ProcessedAvatar].ImgElement.src = BloxAvatar.src;
    
	 if( ProcessedAvatar<AvatarTableCount )
	 {
	    ProcessedAvatar++;
	    ProcessAvatar( ProcessedAvatar );
	 }
}


function DefaultAvatarError()
{
    AvatarTable[ProcessedAvatar].AnchElement.href = "http://www.mybloglog.com/buzz/co_redir.php?t=&href="+AvatarTable[ProcessedAvatar].BlogAddress+"&n=";
    // AvatarTable[ProcessedAvatar].ImgElement.src = "http://pub.mybloglog.com/coiserv.php?href="+AvatarTable[ProcessedAvatar].BlogAddress+"&n=";
    AvatarTable[ProcessedAvatar].ImgElement.src = "/resource/noavatar.jpg";

	 if( ProcessedAvatar<AvatarTableCount )
	 {
	    ProcessedAvatar++;
	    ProcessAvatar( ProcessedAvatar );
	 }
}


//
//  Funkcja doprowadza nazwę blogu do porzšdnej postaci: http://xxxx.blox.pl
//

function NormalizeBloxAddress( inAddress )
{
	var Ret = '';
	var Rx = new RegExp('(.*?)\\.blox', "gim");
	var Mx = Rx.exec(inAddress);
	if( Mx!=null )
	{
		if( Mx.length==2 )
		{
			var Rx1 = new RegExp('/([^/]*?)$', "gim");
			var Mx1 = Rx1.exec(Mx[1]);
			if( Mx1!=null )
			{
				if( Mx1.length==2 )
				{		
					Ret = Mx1[1];
				}
				else
				{
					Ret = Mx[1];
				}		

				Ret = "http://"+Ret+".blox.pl";	
			}
			else
			{
				Ret = Mx[1]+".blox.pl";	
			}
		}
		else
		{
			Ret = inAddress;
		}
   }
	else
		Ret = inAddress;
	
   
   return Ret;
}


function AppendAvatarItems()
{
   var AllLinks = document.getElementsByTagName('div');
   for(i=0; i<AllLinks.length; i++)
   {
      if( AllLinks[i].className.match(/(^|\s)InfoKomentarzAuthor(\s|$)/))
      {  
         var BaseElem = AllLinks[i];
         var InnerAnch = AllLinks[i].getElementsByTagName('a');               
         if(( InnerAnch!=null )&&( InnerAnch.length>0 ))
         {
            var AnchElem = document.createElement("a");
            var ImgElem = document.createElement("img");           
            
            // Sprawdzamy czy to nie adres kokpitu w Blipie
            
         	var Rx = new RegExp('http://.*?([^.]*)\\.blip.pl', "gim");
				var Mx = Rx.exec(InnerAnch[0].href);
				if(( Mx!=null )&&( Mx.length==2 ))
				{
               AvatarTable[AvatarTableCount++] = new AvatarElement(ImgElem,AnchElem,"http://"+Mx[1]+".blip.pl", AllLinks[i].parentNode.id,1,Mx[1]);
				}
				else
				{         
	            if ( InnerAnch[0].href.substr(7,40) == 'www.blox.pl/html?page=userProfilePreview') 
	            {
	                AnchElem.href = InnerAnch[0].href;
                    // ImgElem.src = "http://debergerac.blox.pl/resource/mbl.blox.48.png";               
	                ImgElem.src = "/resource/noavatar.jpg";               
	            } 
	            else 
	            {
	            	 var BlogAddress = NormalizeBloxAddress(InnerAnch[0].href);
	            	 AvatarTable[AvatarTableCount++] = new AvatarElement(ImgElem,AnchElem,BlogAddress,AllLinks[i].parentNode.id,0,"");
	            }           
	         }
	            
            ImgElem.width = 48;
            ImgElem.height = 48;
            ImgElem.vspace = 0;
            ImgElem.hspace = 0;
            AnchElem.appendChild(ImgElem);
            BaseElem.parentNode.insertBefore(AnchElem,BaseElem);
            ImgElem.className = "MBLAvatar";
            i++;
         }
         else    // Znaczy się - goć portalu
         {
            var ImgElem1 = document.createElement("img");           
            ImgElem1.src = "/resource/noavatar.jpg";               
            
            ImgElem1.width = 48;
            ImgElem1.height = 48;
            ImgElem1.vspace = 0;
            ImgElem1.hspace = 0;
            BaseElem.parentNode.insertBefore(ImgElem1,BaseElem);
            ImgElem1.className = "MBLAvatar";
            i++;
	 		}
      }
   }

	ProcessedAvatar = 0;
	ProcessAvatar(0);
}


if (document.getElementById('BlogSzerokaSzpalta'))
{
	AppendAvatarItems();
}
else 
{
	if (window.addEventListener) { window.addEventListener('load', AppendAvatarItems, false);}
 	else {if (window.attachEvent){ window.attachEvent('onload', AppendAvatarItems);} }
}
