/** myReportObject for Equitystory QuickHTML 3.0
* @Autor: Christoph Krichenbauer
* @Copyright: Equitystory AG
* @Version: 0.2b
*/

function myReport(report, header, line, footer) {
	this.reportContent = report; //report-Object.
	this.pages=this.reportContent.pages;
	this.storedPages=makeStoredPagesArray(this.pages);
	//cataloage "template"
	this.catHeader=header;
	this.catLine=line;
	this.catFooter=footer;
	
/*Private*/
	function makeStoredPagesArray(pages) {
		var result= new Array();
		for (var i = pages[0]; i<=pages[pages.length-1]; i++) {
			result[i]=false;
		}
		return result;
	}
	
/*Public*/
	this.addPage = function(pageNo) {
		this.storedPages[pageNo]=true;
	}
	
	this.removePage = function(pageNo) {
		this.storedPages[pageNo]=false;
	}

	this.showStoredPages = function() {
		var content=this.catHeader;
		for (var i=0; i<=this.storedPages.length; i++) {
			if (this.storedPages[i]) {
				var zeile=this.catLine;
				//replace Variables
				zeile=zeile.replace(/\[\(pageNo\)\]/g, i+1);
				zeile=zeile.replace(/\[\(pageName\)\]/g, this.reportContent.pageName[i]);
				zeile=zeile.replace(/\[\(pageDesc\)\]/g, this.reportContent.getPageDesc(i+1));

				//add to content
				content+=zeile;
			}
		}
		content+=this.catFooter;
		return content;
	}

	this.combinePagesString = function () {
		//combine selected Pages to string
		var storedPagesString="";
		for (var i=0; i<=this.storedPages.length; i++) {
			if (this.storedPages[i]) {
				if (storedPagesString == "") {
					storedPagesString = this.reportContent.pageFiles[i];
				} else {
					storedPagesString += "_"+this.reportContent.pageFiles[i];
				}
			}
		}
		return storedPagesString;
	}

	
	this.downloadStoredPages = function (doPrint) {
		var storedPagesString=this.combinePagesString();

		if (storedPagesString == "") {
			alert("No Pages Selected");
		} else {
			if (doPrint == false) { //i.e. Download	
				if(location.href.split("#")[0].indexOf('?')== -1){
					location.href = location.href.split("#")[0] + "?combinePDF="+storedPagesString+"&download=1";
				}
				else{
					location.href = location.href.split("#")[0] + "&combinePDF="+storedPagesString+"&download=1";
				}
			} else { //i.e. Print
				open(location.href.split("#")[0] + "&combinePDF="+storedPagesString);
			}
		}
	}
	
	
	
/*Debuging*/
	this.alertPages = function() {
		for (var i = 0; i<this.storedPages.length; i++) {
			alert("Page "+i+"; stored: "+this.storedPages[i]);
		}
	}
}	