var SelectReportModel = function(){}
  
SelectReportModel.prototype={
    RetrieveSummaryReport:function(locationID, classificationID, source)
    {    
        var request = new SEEK.SalaryCentre.Client.GetSubClassificationSummaryRequest(); 
        request.LocationID = locationID;
        request.ClassificationID = classificationID;
        request.Source = source; 
        Salary.Services.SelectReport.GetSubClassificationSummary(request, this.RetrieveSummaryReportOnComplete, this.RetrieveSummaryReportOnFailed, this.Presenter);
        return true;
    },
        
    RetrieveSummaryReportOnComplete:function( response, presenter, methodName )  
    {
        presenter.OnLoadSummaryReportComplete(response);
    },

    RetrieveSummaryReportOnFailed:function( exception, presenter, methodName )
    {
        presenter.OnLoadSummaryReportFailed(exception.get_exceptionType(), exception.get_message());
    },
    
    SaveSettings:function(locationID, classificationID)
    {
        var exdate = new Date();
        exdate.setDate(exdate.getDate()+10000);
        document.cookie="JobClass=" +classificationID+";expires="+exdate.toGMTString();
        document.cookie="Location=" +locationID+";expires="+exdate.toGMTString();       
        return true;
    },    
    
    RetrieveJobTitlesWithCount:function(locationID, subClassificationID)
    { 
        var request = new SEEK.SalaryCentre.Client.GetJobTitlesRequest(); 
        request.SubClassificationID = subClassificationID; 
        request.LocationID = locationID;        
        Salary.Services.SelectReport.GetJobTitlesWithSurveyCount(request, this.RetrieveJobTitlesWithCountOnComplete, this.RetrieveJobTitlesWithCountOnFailed, this.Presenter);
        return true;
    },
        
    RetrieveJobTitlesWithCountOnComplete:function( response, presenter, methodName )  
    {
        presenter.OnLoadJobTitlesWithCountComplete(response);
    },

    RetrieveJobTitlesWithCountOnFailed:function( exception, presenter, methodName )
    {
        presenter.OnLoadJobTitlesWithCountFailed(exception.get_exceptionType(), exception.get_message());
    },
    
    LoadSubClassification:function(locationID, classificationID)
    { 
        var request = new SEEK.SalaryCentre.Client.GetSubClassificationsRequest(); 
        request.ClassificationID = classificationID;
        request.Location = locationID;       
        Salary.Services.SelectReport.GetSubClassifications(request, this.LoadSubClassificationOnComplete, this.LoadSubClassificationOnFailed, this.Presenter);
        return true;
    },
        
    LoadSubClassificationOnComplete:function( response, presenter, methodName )  
    {
        presenter.OnLoadSubClassificationComplete(response);
    },

    LoadSubClassificationOnFailed:function( exception, presenter, methodName )
    {
        presenter.OnLoadSubClassificationFailed(exception.get_exceptionType(), exception.get_message());
    }  
                  
}
           
SelectReportModel.registerClass('SelectReportModel');
SelectReportModel.Presenter = null;
