//<!--  ****************************************** 	-->
//<!--           CANNED REPORT 						-->
//<!--           Object definition					-->
//<!--  ****************************************** 	-->

//<!-- ------------- DOREPORTCRITERIA --------------- -->
// Report Criteria entity definition

function doReportCriteria (pId,pValue)
{
 // -------- Properties --------- 
 this.Id = pId;				// Unique Identifier corresponding to the report id
 this.value = pValue;		// criteria value as followed : &FromDate=01/01/97&ToDate=...
}

//<!-- ------------- doReportCriterias --------------- -->
// Report Criteria collection definition.

function doReportCriterias ()
{
 // -------- Properties ---------  
 this.length=0;
 
 // -------- Methods --------- 
 this.set = mSetReportCriteria;
 this.get = mGetReportCriteria;
}

//<!-- ------------- mSetReportCriteria --------------- --> 
// Set a criteria value for a report Id

function mSetReportCriteria(pId,pValue)
{
 var index; 
 index = -1;
 var mCriteria = new doReportCriteria (pId,pValue); 							
 // Insert the new item if it is not in the list yet.
 for (var i = 0; i < this.length; i++) {
 	 if (this[i].Id == pId) {
	 	index = i;
	 }	
	}

if (index == -1){
	// Create a new item
	this.length ++; 
 	index = this.length - 1;
	this[index] = mCriteria;
	}
else
	// Update the item
	this[index].value = pValue;
}

//<!-- ------------- mGetReportCriteria --------------- --> 
// Return the criteria value of a report 

function mGetReportCriteria(pId)
{
 var value;
 value = '';

 for (var i = 0; i < this.length; i++) 
 	 if (this[i].Id == pId) 
	 	value = this[i].value;
return value;
}

//<!-- ================== DOCANNNEDREPORTS & DOCANNNEDREPORT ==============  -->

//<!-- ------------- doCannedReport --------------- -->
// doCannedReport entity definition
function doCannedReport (pId,pCode,pName,pHelp,pResultPage,pCriteriaPage,pTop,pCriteriaDate,pCriteria1,pCriteria2,pCriteria3,pCriteria4,pDefault1,pDefault2,pDefault3,pDefault4)
{
 // -------- Properties --------- 
 this.Id = pId;		// Unique Identifier of the report Ex: 1 Copmes from the Id of the database
 this.code = pCode;			// Unique code of the report Ex: Airport
 this.name = pName;			// Unique name of the report Ex: Airport Activity.
 this.help = pHelp;			// Help displayed in the Tag Help.
 this.resultPage = pResultPage;			// reference HTM or ASP page to be loaded in the frCannedResult frame.
 this.criteriaPage = pCriteriaPage // array of strings for the list of necessary parameter.  
 this.top = pTop;			// Indicate if the canned report is a top one or not. (Boolean)
 this.CriteriaDate = pCriteriaDate;
 this.Criteria1 = pCriteria1;
 this.Criteria2 = pCriteria2;
 this.Criteria3 = pCriteria3;
 this.Criteria4 = pCriteria4;
 this.Default1 = pDefault1;
 this.Default2 = pDefault2;
 this.Default3 = pDefault3;
 this.Default4 = pDefault4;
 
 // -------- Method --------- 
 this.copyReport = mCopyCannedReport;	
 this.getURL = mGetURL;

 }

<!-- ------------- mGetURL --------------- --> 
// Build the URL String for the next report to be loaded
function mGetURL (pParam) {

var strURL;
strURL = this.resultPage + '?ReportId=' + this.Id
			+ '&ReportCode=' + escape(this.code)+'&' + pParam;
return 	strURL;
}

//<!-- ------------- mCopyCannedReport --------------- --> 
// Copy the contain of the given canned repor into itsself
// if null is passed then empty the structure

function mCopyCannedReport (pCannedReport) {

if (pCannedReport) {
	this.Id = pCannedReport.Id;
	this.code = pCannedReport.code;
	this.name = pCannedReport.name;
	this.help = pCannedReport.help;
	this.resultPage = pCannedReport.resultPage;
	this.criteriaPage = pCannedReport.criteriaPage;
	this.top = pCannedReport.top;
	this.CriteriaDate = pCannedReport.CriteriaDate;
	this.Criteria1 = pCannedReport.Criteria1;
	this.Criteria2 = pCannedReport.Criteria2;
	this.Criteria3 = pCannedReport.Criteria3;
	this.Criteria4 = pCannedReport.Criteria4;
	this.Default1 = pCannedReport.Default1;
	this.Default2 = pCannedReport.Default2;
	this.Default3 = pCannedReport.Default3;
	this.Default4 = pCannedReport.Default4;
	}
else {
	this.Id = null;
	this.code = null;
	this.name = null;
	this.help = null;
	this.resultPage = null;
	this.criteriaPage = null;
	this.top = null;
	}
	
 }

//<!-- ------------- doCannedReportReports --------------- -->
// CannedReports collection definition for the top reports. 
function doCannedReports ()
{
 // -------- Properties --------- 
 this.length=0;
 this.selected;
 
 // -------- Methods --------- 
 this.select =mselectCannedReport;
 this.add = maddCannedReport;
 this.clear = mclearCannedReports;
}
//<!-- ------------- maddCannedReport --------------- --> 
// Add a new top CannedReport item into the collection

function maddCannedReport (pId, pCode, pName, pHelp, pResultPage, pCriteriaPage,pTop,pCritDate,pCrit1,pCrit2,pCrit3,pCrit4,pDefault1,pDefault2,pDefault3,pDefault4)
{
// Add a canned report in te collection
// Used by the ASP page that loads the data.

var mCannedReport = new doCannedReport;

mCannedReport.Id = pId;
mCannedReport.code = pCode;
mCannedReport.name = pName;
mCannedReport.help = pHelp;

if (pCode == 'EXECUTIVE' )
{
	mCannedReport.resultPage = '../../../ZoomExecutiveSummary/' + pResultPage;
	//mCannedReport.resultPage = pResultPage;
}
else
{
	mCannedReport.resultPage = pResultPage;
}

mCannedReport.criteriaPage = pCriteriaPage;
mCannedReport.top = pTop;
mCannedReport.CriteriaDate = pCritDate;
mCannedReport.Criteria1 = pCrit1;
mCannedReport.Criteria2 = pCrit2;
mCannedReport.Criteria3 = pCrit3;
mCannedReport.Criteria4 = pCrit4;
mCannedReport.Default1 = pDefault1;
mCannedReport.Default2 = pDefault2;
mCannedReport.Default3 = pDefault3;
mCannedReport.Default4 = pDefault4;

this.length ++;
i = this.length - 1;
this[i] = mCannedReport;
 
}

//<!-- ------------- mclearCannedReports --------------- --> 
// Remove all the item of the collection

function mclearCannedReports ()
{
for (var i = 0; i < this.length; i++)
	this[i] = null;
this.length = 0;
}


//<!-- ------------- mselectCannedReport; --------------- --> 
// Select the pIndex report in the collection.
// The pIndex parameter represents the position in the collection.

function mselectCannedReport (pIndex)
{
 this.selected = this[pIndex];
}
