function addEvent(obj, evType, fn) { 
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, false);
	return true;
		} else if (obj.attachEvent) {
	var r = obj.attachEvent("on" + evType, fn);
		return r;
	} else {
		return false;
	}
}
    document.getElementsFoxAjax = function() {
	var children = document.getElementsByTagName('*') || document.all;
	var elements = new Array();
	for (var i = 0; i < children.length; i++){
		var child = children[i];
		if(
		   child.getAttribute('rel') == 'ajax'
		&& child.tagName == 'A'
		&& child.getAttribute('href')
		) elements.push(children[i]);
	}
	return elements;
    }
    
	var ajaxLink = window.XMLHttpRequest
		? new XMLHttpRequest()
		: new ActiveXObject("Microsoft.XMLHTTP");
	var ajaxTab = new Array();
	
    function ajaxHandlerBit(e){
	e.onclick = function(){	goAjax(this); return false; };
    }
    
    function ajaxHandler(){
	al = document.getElementsFoxAjax();
	for ( ii = 0; ii < al.length; ii++ )
		ajaxHandlerBit( al[ii] );
    }
    
    function goAjax(i){
		if( !window.XMLHttpRequest )
			ajaxLink = new ActiveXObject("Microsoft.XMLHTTP");
		ajaxLink.onreadystatechange = function(){
		    if( ajaxLink.readyState == '1' ){
			i.replaceChild( document.createTextNode(
					i.getAttribute('title') || 'loading...' ),
				i.firstChild
			);
		    } else if( ajaxLink.readyState == '4' ){
			var res = ajaxLink.responseText;
			    //s = document.createElement( 'script' );
			    //s.setAttribute( 'type', 'text/javascript' );
			    //s.appendChild( document.createTextNode(
			  //	'function goneAjax(a){ ' + res + '}' ) );
			  //  document.body.appendChild(s);
			  //  goneAjax( i );
			  //  document.body.removeChild(s);
			  eval ( 'a = i; ' + res );
		    }
		}
		var link = i.getAttribute('href');
		link += (link.indexOf("?") != -1 ? '&' : '?') + 'ajax=1';
		
		ajaxLink.open('get', link );
		ajaxLink.send("");
    }

addEvent(window, "load", ajaxHandler);