

function SubReports() {}

SubReports.prototype = {
	
	 BUFFER_URL : buildAbsolutePath("/modules/subreports/subreports.data.asp")
	
	,init : function() {
		
		this.body = Element.get("subReportsModule");
		this.menu = Element.parseSelector(".WSODMOD_menu", this.body);
		
		Events.delegate(this.menu, "click", {
			 selector : "a!active"
			,handler  : this.retrieveReports
			,context  : this
		});
		
		Events.delegate(this.body, "click", {
			 selector:"a.pdfLaunch"
			,handler:this.openPDF
			,context:this
		});
	}
	
	,showLoading : function() {
		
		this.loader = this.loader || Element.parseSelector(".WSODMOD_loader", this.body);
		
		var bod = Element.parseSelector(".WSODMOD_content", this.body)[0];
		var h = bod.offsetHeight;
		var sh = (h / 2);
		
		if(!Element.hasClass(document.body, "msie")) {
			h = sh + 20;	
		}
		
		Element.setStyle(this.loader, "height:" + h + "px");
		Element.setStyle(this.loader, "padding-top:"+ (sh - 20) + "px");
		Element.setStyle(this.loader, "width:" + bod.offsetWidth + "px");
		Element.removeClass(this.loader, "none");
	}
	
	,hideLoading : function() {
		
		if(this.loader) {
			Element.addClass(this.loader, "none");	
		}
	}
	
	,openPDF : function(e, el) {
		
		e.cancel();
		pdf(el.href);
	}
	
	,retrieveReports : function(e, el) {
		
		this.Buffer = this.Buffer || new ContentBuffer();
		this.Buffer.abortRequests();
		
		Element.removeClass(Element.parseSelector("a", this.menu), "active");
		Element.addClass(el, "active");
		
		this.showLoading();
		
		var key = el.getAttribute("key");
		
		this.Buffer.load({
			 debug: true
			,url: this.BUFFER_URL
			,method: "post"
			,contentType: "text/javascript"
			,context:this
			,preventEval:true
			,data:{
				key : key
			}
			,onload:  this.renderReports
			,onerror: this.failSilently
		});
	}
	
	,renderReports : function(oBuffer) {

		var data = oBuffer.getResult();
			data = DataFunctions.serializer.deserialize(data);
			
		var bod = Element.parseSelector(".WSODMOD_content", this.body)[0];
		var reports = Element.parseSelector(".reportPDFLeft, p", this.body);
		
		Element.remove(reports);
		
		var i = 0;
		var len = data.length;
		var img  = buildAbsolutePath("images/icons/icn_bluearrow.png");
		
		for(; i < len; i++) {
			
			if(data[i].available) {

				Element.create("div", {className:"iconBackground reportPDFLeft margBot10 padRight5"}, [
					 Element.create("div", {}, [
						Element.create("a", {href:data[i].report, className:"noDecorations pdfLaunch"}, [
							 data[i].name
							,"&nbsp;"
							,Element.create("img", {src:img})
						])
					 ])
					,Element.create("div", {className:"smaller"}, data[i].description)
				], bod);
				continue;
			}
			Element.create("p", {className:"lighter smaller"}, data[i].description, bod);
			break;
		}
		this.hideLoading();
	}
	
	,failSilently : function() {
		if(window.console && console.info){
			console.info("Error loading SubReports");
		}	
	}
	
	,popReportsSearch: function(e, el){
		console.log('pop');
		return false;
	}
}

loadBuffer.add(function() {
	
	var subReports = new SubReports();
		subReports.init();
		
	var bod = subReports.body;
	var cur = Element.parseSelector("a.active", bod);
	
	subReports.retrieveReports(null, cur[0]);
});