/** @author Gavin Brogan */

var LitLib = {};
LitLib.sandbox = {
	getDocTitle: function() {
		var title = (document.getElementById('content').getElementsByTagName('h1')[0].firstChild.nodeValue || "undefined");
		return title;
	},
	removeSpacesAndEscape: function(str){
		return escape(str.replace(/ /g, ''));
	},
	getDocLibDiv: function(){
		var doclibdiv  = document.getElementById('content').getElementsByTagName('div')[2];
		if (doclibdiv && (doclibdiv.className.search(/doclib/) !== -1)){
			return doclibdiv;
		}else{
			return false;
		}
	}
};

LitLib.DOM = {
	domReady: function(f){
		if (this.domReady.done){
			return f;
		}
		if (this.domReady.timer){
			this.domReady.ready.push(f);
		}else{
		this.domReady.done = false;
		LitLib.util.Event.addEvent(window, "load",this.isDOMReady,false);
		this.domReady.ready = [ f ];
		this.domReady.timer = setInterval( "this.isDomReady", 13); /* eval is not evil */
		}
	},
	isDOMReady: function(){
		if (LitLib.DOM.domReady.done){ /** "this" isn't LitLib.DOM when this is run*/
			return false;
		}
		if(document && document.getElementById && document.getElementsByTagName && document.body){
			clearInterval(LitLib.DOM.domReady.timer);
			LitLib.DOM.domReady.timer = null ;
			for(var i = 0; i < LitLib.DOM.domReady.ready.length; i++){
				LitLib.DOM.domReady.ready[i]();
			}
		LitLib.DOM.domReady.ready = null;
		LitLib.DOM.domReady.done = true;		
		}
	}
};

LitLib.util = {};
LitLib.util.Event = {
	addEvent: function(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;
		}
	},
	getTarget: function(e){
		if (window.event){
			return window.event.srcElement;
		}else{
			return e.target;
		}
		return false;
	}
};

LitLib.DOM.domReady( function(){
	var doclibdiv = LitLib.sandbox.getDocLibDiv();
	LitLib.util.Event.addEvent(doclibdiv, "click", function(e){
		var targ = LitLib.util.Event.getTarget(e);
		if(targ.nodeName.toUpperCase() === "A"){
			var libtitle = LitLib.sandbox.removeSpacesAndEscape(LitLib.sandbox.getDocTitle());
			var docname =  LitLib.sandbox.removeSpacesAndEscape(targ.firstChild.nodeValue);
			var filename = (targ.href.substring((targ.href.indexOf("fileName=")+ 9 )));
			if (pageTracker._trackPageview){
				pageTracker._trackPageview("/library/" + libtitle + "/" + docname + "__" + filename);
			}
		}
	});	
});


