var Ajax={}
Ajax.onupdate=new Array();
Ajax.attach=function(anchor)
{   
  anchor.url=anchor.href;
  anchor.href="#";
  anchor.onmouseup=function()
  {
    var req=getXMLHttpRequest();
    req.open("GET",this.url,true);
    req.onreadystatechange = function()                                    
    {                                    
      if(req.readyState==4)
      {
        if(req.status==200)
        {
	  var xml=req.responseXML;
	  var nodes=xml.documentElement.childNodes;
	  var i;
	  for(i=0;i<nodes.length;++i)
	  {
	    var node=nodes.item(i);
	    if (node.tagName)
	    {
	      if (node.tagName=="setFromString")
	      {
	        var element=document.getElementById(node.getAttribute("target"));
		var string="";
		for(var k=0;k<node.childNodes.length;++k)
		  string+=node.childNodes.item(k).data;
		element.innerHTML=string;
	      }
	      else if (node.tagName=="setFromUrl")
	      {
	        var element=document.getElementById(node.getAttribute("target"));
		var nreq=getXMLHttpRequest();                              
                nreq.open("GET",node.getAttribute("href"),true);                                    
                nreq.onreadystatechange = function()                                    
                {                                    
                  if(nreq.readyState==4)
                  {
                    if(nreq.status==200)
                    {		
		      element.innerHTML=nreq.responseText;
	            }
		  }
		}
	      }
	      else if (node.tagName=="setClass")
	      {
	        var element=document.getElementById(node.getAttribute("target"));
		element.className=node.getAttribute("className");
	      }
	      else if (node.tagName=="remove")
	      {
	        var element=document.getElementById(node.getAttribute("target"));
		element.parentNode.removeChild(element);
	      }
	    
	    }
	    
	  
	  }
	}
        for(i=0;i<Ajax.onupdate.length;++i)
  	{
          Ajax.onupdate[i]();
        }
      }
    }
    req.send('');     
    return false;
  }
}
Ajax.init=function()
{
  var reg=new RegExp("ajax(\s|$)");
  for(var i=0;i<document.links.length;++i)
  {       
    lnk=document.links.item(i);
    if (reg.test(lnk.className))
      Ajax.attach(lnk);
  }
  var elements = document.getElementsByTagName("input");
  for(var i=0;i<elements.length;++i)
  {
    var el=elements.item(i);
    if (reg.test(lnk.className))
      Ajax.attach(lnk);
  }
}                       

Ajax.init();

