/*
	Badgr version 1.0 
	written by Christian Heilmann 
	Please visit http://icant.co.uk/badgr/ for updates and copyright information
*/
badgr={
	badgrClass:'badgr',
	containerID:'badgrcontainer',
	init:function(){
		var newUL;
		if(!document.getElementById || !document.createTextNode){return;}
		var links=document.getElementsByTagName('a');
		for(var i=0;i<links.length;i++){
			if(!DOMhelp.cssjs('check',links[i],badgr.badgrClass)){
				continue;
			}
			newUL=document.createElement('ul');
			newUL.className=badgr.badgrClass;
			links[i].parentNode.insertBefore(newUL,links[i]);
			var dir=links[i].getAttribute('href');
			var loc=window.location.toString().match(/(^.*\/)/g);
			dir=dir.replace(loc,'');
			badgr.doxhr('badgr.php?cd='+dir,newUL);
			links[i].parentNode.removeChild(links[i]);
			i--;
		}
		badgr.container=document.createElement('div');
		badgr.container.id=badgr.containerID;	
		document.body.appendChild(badgr.container);	
	},
	assignHandlers:function(o){
		var links=o.getElementsByTagName('a');
		for(var i=0;i<links.length;i++){
			links[i].parent=o;
			if(/badgrprev|badgrnext/.test(links[i].parentNode.className)){
				DOMhelp.addEvent(links[i],'click',badgr.load,false);
				links[i].onclick=function(){return false;}
			} else {
				DOMhelp.addEvent(links[i],'click',badgr.show,false);
				links[i].onclick=function(){return false;}
			}
		}
	},
	load:function(e){
		var t=DOMhelp.getTarget(e);
		if(t.nodeName.toLowerCase()!='a'){
			t=t.parentNode;
		}
		var dir=t.getAttribute('href');
		if(dir){
			badgr.doxhr('badgr.php?cd='+dir,t.parent);
		}
		DOMhelp.cancelClick(e);
	},
	show:function(e){
		var t=DOMhelp.getTarget(e);
		if(t.nodeName.toLowerCase()!='a'){
			t=t.parentNode;
		}
		var source=t.getAttribute('href');
		var y=0;
		if(self.pageYOffset){
			y=self.pageYOffset;
		} else if (document.documentElement && document.documentElement.scrollTop){
			y=document.documentElement.scrollTop;
			
		} else if(document.body){
			y=document.body.scrollTop;
		}	
		badgr.container.style.top=y+'px';	
		var newImg=document.createElement('img');
		badgr.deletePic();
		newImg.setAttribute('src',source);
		badgr.container.appendChild(newImg);				
		DOMhelp.cancelClick(e);
		DOMhelp.addEvent(badgr.container,'click',badgr.deletePic,false);
	},
	deletePic:function(){
		badgr.container.innerHTML='';
	},	
  doxhr:function(url,container){
    var request;
    try{
      request = new XMLHttpRequest();
    }catch(error){
      try{
        request = new ActiveXObject("Microsoft.XMLHTTP");
      }catch(error){
        return true;
      }
    }
    request.open('get',url,true);
    request.onreadystatechange=function(){
      if(request.readyState == 1){
	  }
	  if(request.readyState == 4){
        if (request.status && /200|304/.test(request.status))
        {
          badgr.retrieved(request,container);
        } else{
          badgr.failed(request);
        }
      }
    }
    request.setRequestHeader('If-Modified-Since','Wed, 05 Apr 2006 00:00:00 GMT');
    request.send(null);
    return false;
  },
  retrieved:function(request,container){
	var data=request.responseText;
	container.innerHTML=data;
	badgr.assignHandlers(container);
  },
  failed:function(requester){
    alert('The XMLHttpRequest failed. Status: '+requester.status);
    return true;
  }
}
DOMhelp.addEvent(window,'load',badgr.init,false);
