Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/tabTable.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/tabTable.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/tabTable.component.ts	(nonexistent)
@@ -1,93 +0,0 @@
-import {Component, Input} from '@angular/core';
-import {RouterHelper} from '../utils/routerHelper.class';
-import {OpenaireProperties} from '../utils/properties/openaireProperties';
-//import {PagingModule} from '../utils/paging.module';
-
-@Component({
-    selector: 'tabTable',
-    template: `
-        <div *ngIf="info && info.length > pageSize" class="uk-margin">
-          <span class="uk-text-bold">{{info.length}} research results, page {{page}} of {{totalPages(info.length)}}</span>
-          <paging-no-load class="uk-float-right" [currentPage]="page" [totalResults]="info.length" [size]="pageSize" (pageChange)="updatePage($event)"></paging-no-load>
-        </div>
-
-        <table class="uk-table">
-            <!--thead>
-                <tr>
-                    <th>Title</th>
-                    <th width="20%">Trust</th>
-                </tr>
-            </thead-->
-            <tbody>
-                <tr *ngFor="let item of info.slice((page-1)*pageSize, page*pageSize)" class="{{item['class']}}">
-                    <td *ngIf="item != undefined">
-                        <!--span *ngIf="item['class'] == 'dataset'" class="glyphicon glyphicon-star" aria-hidden="true"-->
-                        <img *ngIf="item['class'] == 'publication'" class= "entityIcon" src="assets/publication.png" alt="(Publication)">
-                        <img *ngIf="item['class'] == 'dataset'" class= "entityIcon" src="assets/dataset.png" alt="(Dataset)">
-
-                        <!--/span-->
-                        <!--a *ngIf="item['url'] != '' && item['name'] != ''" href="{{item['url']}}"-->
-                        <a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'dataset'"
-                            [queryParams]="{datasetId: item.id}" routerLinkActive="router-link-active" routerLink="/search/dataset">
-                                {{item['name']}}
-                        </a>
-
-                        <a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'publication'"
-                            [queryParams]="{articleId: item.id}" routerLinkActive="router-link-active" routerLink="/search/publication">
-                        <!--a *ngIf="item['url'] != '' && item['name'] != '' && item['class'] == 'publication'"
-                            href="http://astero.di.uoa.gr:3000/search/publication?articleId={{item['id']}}"-->
-
-                                {{item['name']}}
-                        </a>
-
-                        <p *ngIf="item['id'] == '' && item['name'] != ''">{{item['name']}}</p>
-                        <span *ngIf="item['date'] != ''">
-                            ({{item['date']}})
-                        </span>
-                    </td>
-                    <td>
-                        <div *ngIf="item['trust'] != ''"  title="{{item['trust']}}%" >
-                            <div class="uk-text-center">{{item['trust']}}%</div>
-                            <progress class="uk-progress uk-margin-remove" value="{{item['trust']}}" max="100"></progress>
-                         </div>
-                        <div *ngIf="item['trust'] == ''">
-                            <p>No trust available</p>
-                        </div>
-                    </td>
-                </tr>
-            </tbody>
-        </table>
-    `
-
-    })
-
-export class TabTableComponent {
-    @Input() info: { "name": string, "url": string, "date": string, "trust": number}[];//Map<string, string[]>;
-
-    public routerHelper:RouterHelper = new RouterHelper();
-    public searchLinkToPublication: string;
-    public searchLinkToDataset: string;
-
-    public page: number = 1;
-    public pageSize: number = 10;
-
-    constructor () {
-    }
-
-    ngOnInit() {
-        this.searchLinkToPublication = OpenaireProperties.getsearchLinkToPublication();
-        this.searchLinkToDataset = OpenaireProperties.getsearchLinkToDataset();
-    }
-
-    totalPages(totalResults: number): number {
-      let totalPages:any = totalResults/this.pageSize;
-      if(!(Number.isInteger(totalPages))) {
-          totalPages = (parseInt(totalPages, this.pageSize) + 1);
-      }
-      return totalPages;
-    }
-
-    updatePage($event) {
-      this.page = $event.value;
-    }
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/resultLanding.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/resultLanding.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/resultLanding.module.ts	(nonexistent)
@@ -1,26 +0,0 @@
-/* This module contains all common components for Publication & Daasets Landing Pages */
-import { NgModule}            from '@angular/core';
-import { CommonModule }        from '@angular/common';
-import { FormsModule }         from '@angular/forms';
-import { RouterModule } from '@angular/router';
-import {PagingModule} from '../utils/paging.module';
-
-import {ShowAuthorsComponent} from './showAuthors.component';
-import {ShowIdentifiersComponent} from './showIdentifiers.component';
-import {ShowSubjectsComponent} from './showSubjects.component';
-import {TabTableComponent} from './tabTable.component';
-
-@NgModule({
-  imports: [
-    CommonModule, FormsModule, RouterModule, PagingModule
-  ],
-  declarations: [
-   ShowAuthorsComponent,ShowIdentifiersComponent,ShowSubjectsComponent, TabTableComponent
-  ],
-  providers:[
-   ],
-  exports: [
-     ShowAuthorsComponent,ShowIdentifiersComponent,ShowSubjectsComponent, TabTableComponent
-    ]
-})
-export class ResultLandingModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/metrics.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/metrics.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/metrics.component.ts	(nonexistent)
@@ -1,218 +0,0 @@
-import {Component, Input, Output, EventEmitter} from '@angular/core';
-import {Metrics} from '../utils/entities/metrics';
-import {MetricsService } from '../services/metrics.service';
-import {ErrorCodes} from '../utils/properties/openaireProperties';
-
-import { Subscription }   from 'rxjs/Subscription';
-
-@Component({
-    selector: 'metrics',
-    template: `
-    <!--div *ngIf="i>0 && tab.content=='metricsTab' && metrics != undefined" class="uk-panel uk-padding uk-background-muted"-->
-    <!--/div-->
-
-    <!--dl *ngIf="metrics != undefined"
-        class="uk-description-list-horizontal uk-panel uk-padding uk-background-muted">
-        <dt *ngIf="type=='results'">Total Downloads: </dt>
-        <dt *ngIf="type!='results'" class="uk-text-break">
-            Total <span [innerHTML]="name"></span> Publication Downloads:
-        </dt>
-        <dd>{{metrics.totalDownloads}}</dd>
-        <dt>Total Views: </dt>
-        <dd>{{metrics.totalViews}}</dd>
-    </dl-->
-
-    <!--div *ngIf="metrics == undefined" class="uk-alert uk-alert-warning">
-        Metrics are currently unavailable
-    </div-->
-
-    <div *ngIf="status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
-    <div *ngIf="status == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
-    <div *ngIf="status == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
-    <div *ngIf="status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service not available</div>
-    <div *ngIf="metrics != undefined" class="uk-child-width-1-3@m uk-grid-small uk-grid-match uk-grid" uk-grid="">
-        <div *ngIf="entityType == 'projects'" class="uk-width-1-1 uk-text-center uk-text-meta uk-margin">Project metrics are derived from aggregating individual research results metrics.</div>
-      <div class="metrics-openaire uk-first-column">
-          <div class="uk-tile uk-tile-default uk-padding-small">
-            <!--div class="uk-clearfix">
-                <div class="uk-float-left  " uk-tooltip="pos:right; delay:5"
-                      title='<div    class= "uk-margin uk-padding-small">
-                        <p>Info about the value....</p>
-                      </div>'><span class="uk-icon">
-<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" icon="info" ratio="1"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>
-</span>
-                </div>
-            </div-->
-            <div class="uk-text-center">{{pageViews}}</div>
-              <div class="uk-text-center">views in OpenAIRE</div>
-              <!--div  *ngIf="entityType!='results'" class="uk-text-center">Research results views  in OpenAIRE</div-->
-              <!--div class="uk-margin-top uk-article-meta">
-                <div *ngIf="entityType != 'results'">Research results page views in OpenAIRE</div>
-                <div *ngIf="entityType == 'results'">{{entity}} page views in OpenAIRE</div>
-              </div-->
-
-          </div>
-      </div>
-      <div class="metrics-views">
-          <div class="uk-tile uk-tile-muted uk-padding-small">
-              <!--div class="uk-clearfix">
-                  <div class="uk-float-left  " uk-tooltip="pos:right; delay:5"
-                        title='<div    class= "uk-margin uk-padding-small">
-                          <p>Info about the value....</p>
-                        </div>'><span class="uk-icon">
-<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" icon="info" ratio="1"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>
-</span>
-                  </div>
-              </div-->
-              <div class="uk-text-center">  {{metrics.totalViews}}
-              <span *ngIf="metrics.totalViews > 0 && metrics.totalOpenaireViews > 0">
-              ( {{metrics.totalOpenaireViews}} from OpenAIRE )
-              </span></div>
-              <div  class="uk-text-center">views in local repository</div>
-              <!--div  *ngIf="entityType!='results'" class="uk-text-center"> research results views in local repository</div-->
-              <!--div  *ngIf="type!='results'" class="uk-text-center">  Total <span [innerHTML]="name"></span> Research Results Views</div-->
-
-
-                <!--div class="uk-margin-top uk-article-meta">
-                  <div *ngIf="entityType == 'projects'">Research results page views in Repositories</div>
-                  <div *ngIf="entityType == 'datasources'">Research results page views in Repository</div>
-                  <div *ngIf="entityType == 'results'">{{entity}} page views in Repositories</div>
-                  <div *ngIf="entityType!='datasources' && metrics.totalOpenaireViews > 0">
-                    Of the {{metrics.totalViews}} views, repositories accessed {{metrics.totalOpenaireViews}} time(s) from OpenAIRE
-                  </div>
-                  <div *ngIf="entityType=='datasources' && metrics.totalOpenaireViews > 0">
-                    Of the {{metrics.totalViews}} views, repository accessed {{metrics.totalOpenaireViews}} time(s) from OpenAIRE
-                  </div>
-                </div-->
-          </div>
-      </div>
-      <div class="metrics-downloads">
-          <div class="uk-tile uk-tile-primary uk-padding-small">
-              <!--div class="uk-clearfix">
-                  <div class="uk-float-left  " uk-tooltip="pos:right; delay:5"
-                        title='<div    class= "uk-margin uk-padding-small">
-                          <p>Info about the value....</p>
-                        </div>'><span class="uk-icon">
-<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" icon="info" ratio="1"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>
-</span>
-                  </div>
-              </div-->
-              <div class="uk-text-center">  {{metrics.totalDownloads}}
-              <span *ngIf="metrics.totalDownloads > 0 && metrics.totalOpenaireDownloads > 0">
-              ( {{metrics.totalOpenaireDownloads}} from OpenAIRE )
-              </span></div>
-              <div class="uk-text-center">downloads in local repository</div>
-              <!--div  *ngIf="entityType!='results'" class="uk-text-center">research results downloads in local repository</div-->
-              <!--div *ngIf="type!='results'" class="uk-text-center">Total <span [innerHTML]="name"></span> Research Results Downloads</div-->
-
-
-                <!--div class="uk-margin-top uk-article-meta">
-                  <div *ngIf="entityType == 'projects'">Research results page downloads in Repositories</div>
-                  <div *ngIf="entityType == 'datasources'">Research results page downloads in Repository</div>
-                  <div *ngIf="entityType == 'results'">{{entity}} page downloads in Repositories</div>
-                  <div *ngIf="entityType!='datasources' && metrics.totalOpenaireDownloads > 0">
-                    Of the {{metrics.totalDownloads}} downloads, repositories accessed {{metrics.totalOpenaireDownloads}} time(s) from OpenAIRE
-                  </div>
-                  <div *ngIf="entityType=='datasources' && metrics.totalOpenaireDownloads > 0">
-                    Of the {{metrics.totalDownloads}} downloads, repository accessed {{metrics.totalOpenaireDownloads}} time(s) from OpenAIRE
-                  </div>
-                </div-->
-
-          </div>
-      </div>
-
-  </div>
-
-<p *ngIf="metrics != undefined && metrics.infos.size > 0" >The information is available from the following content providers: </p>
-    <table *ngIf="metrics != undefined && metrics.infos.size > 0"
-            class="uk-table uk-table-striped">
-        <thead>
-            <tr>
-                <th class="uk-text-center uk-text-bold">From</th>
-                <th class="uk-text-center  uk-text-bold">Number Of Views</th>
-                <th class="uk-text-center  uk-text-bold">Number Of Downloads</th>
-            </tr>
-        </thead>
-        <tbody>
-            <tr *ngFor="let key of metrics.infos.keys()">
-                <td class="uk-text-center">
-                    <a href="{{metrics.infos.get(key).url}}">
-                        {{metrics.infos.get(key).name}}
-                    </a>
-                </td>
-                <td class="uk-text-center">
-                    {{metrics.infos.get(key).numOfViews}}
-                    <span *ngIf="metrics.infos.get(key).numOfViews > 0 && metrics.infos.get(key).openaireViews > 0">
-                      ( {{metrics.infos.get(key).openaireViews}} from OpenAIRE )
-                    </span>
-                </td>
-                <td class="uk-text-center">
-                    {{metrics.infos.get(key).numOfDownloads}}
-                    <span *ngIf="metrics.infos.get(key).numOfDownloads > 0 && metrics.infos.get(key).openaireDownloads > 0">
-                      ( {{metrics.infos.get(key).openaireDownloads}} from OpenAIRE )
-                    </span>
-                </td>
-            </tr>
-        </tbody>
-    </table>
-    `
-    })
-
-export class MetricsComponent {
-    @Output() metricsResults = new EventEmitter();
-    @Input() id: string;
-    @Input() entityType: string;
-    @Input() entity: string;
-    //@Input() name: string = "";
-    @Input() pageViews: number = 0;
-
-    public metrics: Metrics;
-    public errorCodes:ErrorCodes;
-    private sub: Subscription;
-
-    public status: number;
-
-    constructor (private _metricsService: MetricsService) {}
-
-    ngOnInit() {
-        this.errorCodes = new ErrorCodes();
-        this.status = this.errorCodes.LOADING;
-        this.getMetrics();
-    }
-
-    ngOnDestroy() {
-        this.sub.unsubscribe();
-    }
-
-    private getMetrics() {
-        //if(this.id == undefined || this.id == "") {
-        //    console.log("supplied id in metrics is not acceptable");
-        //}
-        //if(this.type == undefined || this.type == "") {
-        //    console.log("supplied id in metrics is not acceptable");
-        //}
-
-        this.sub = this._metricsService.getMetrics(this.id, this.entityType).subscribe(
-         data => {
-             this.metrics = data;
-             this.status = this.errorCodes.DONE;
-             this.metricsResults.emit({
-                 totalViews: this.metrics.totalViews,
-                 totalDownloads: this.metrics.totalDownloads,
-                 pageViews: this.metrics.pageViews
-             });
-         },
-         err => {
-           console.log(err);
-           this.status = this.errorCodes.ERROR;
-           if(err.status == '404') {
-               this.status = this.errorCodes.NOT_AVAILABLE;
-           }
-           this.metricsResults.emit({
-               totalViews: 0,
-               totalDownloads: 0
-           });
-         }
-       );
-    }
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showSubjects.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showSubjects.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showSubjects.component.ts	(nonexistent)
@@ -1,54 +0,0 @@
-import {Component, Input} from '@angular/core';
-
-@Component({
-    selector: 'showSubjects',
-    template: `
-        <div   *ngIf="subjects != undefined || otherSubjects != undefined || classifiedSubjects != undefined ">
-
-            <div *ngIf="(subjects != undefined && subjects.length > 0) ||
-                       (otherSubjects != undefined && otherSubjects.size > 0) ||
-                       (classifiedSubjects != undefined && classifiedSubjects.size > 0)">
-                <span class="uk-text-bold">Subject:</span>
-
-                <span *ngIf="subjects != undefined && subjects.length > 0"> {{subjects.join(" | ")}} </span>
-                <ul class="uk-list">
-                <li *ngIf="otherSubjects != undefined && otherSubjects.size > 0">
-                    <div *ngFor="let key of otherSubjects.keys()">
-                        <span class="uk-text-bold">{{key}}:</span> {{otherSubjects.get(key).join(" | ")}}
-                    </div>
-                </li>
-                <li *ngIf="(subjects == undefined || subjects.length == 0) &&
-                           (otherSubjects == undefined || otherSubjects.size == 0) &&
-                           classifiedSubjects != undefined && classifiedSubjects.size > 0">
-                    -
-                </li>
-                </ul>
-            </div>
-
-            <div *ngIf="classifiedSubjects != undefined && classifiedSubjects.size > 0">
-                <div class="uk-panel uk-padding-small uk-background-muted"  >
-                    <div *ngFor="let key of classifiedSubjects.keys()">
-                        <span class="uk-text-bold">Classified by OpenAIRE into</span>
-                        <div>
-                            <span class="uk-text-bold">{{key}}:</span> {{classifiedSubjects.get(key).join(" | ")}}
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
-    `
-
-    })
-
-export class ShowSubjectsComponent {
-    @Input() subjects: string[];
-    @Input() otherSubjects: Map<string, string[]>;
-    @Input() classifiedSubjects: Map<string, string[]>;
-    // private showClassifiedSbj: boolean = false;
-
-    constructor () {
-    }
-
-    ngOnInit() {
-    }
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showIdentifiers.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showIdentifiers.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showIdentifiers.component.ts	(nonexistent)
@@ -1,91 +0,0 @@
-import {Component, Input, ElementRef} from '@angular/core';
-import {OpenaireProperties} from '../utils/properties/openaireProperties';
-
-@Component({
-    selector: 'showIdentifiers',
-    template: `
-
-                <span *ngIf="showAll && countIdentifiers() > pageSize">
-                    <a class="uk-text-muted" (click)="showAll = !showAll;">View less identifiers</a>
-                </span>
-
-                <ng-container *ngFor="let key of identifiers.keys() let i=index">
-                  <ng-container *ngIf="countSizeOfPreviousIdentifiers(i) < pageSize">
-                    <ng-container *ngFor="let item of identifiers.get(key) let j=index">
-                      <span *ngIf="(sizeOfPreviousIdentifiers + j) < pageSize || showAll" class="custom-external custom-icon">
-                        <a *ngIf="key=='doi'" href="{{doiURL}}{{item}}" target="_blank">{{key}}: {{item}}</a><a
-                        *ngIf="key=='pmc'" href="{{pmcURL}}{{item}}" target="_blank">{{key}}: {{item}}</a><a
-                        *ngIf="key=='handle'" href="{{handleURL}}{{item}}" target="_blank">{{key}}: {{item}}</a></span><span
-
-                        *ngIf="((sizeOfPreviousIdentifiers + j) < pageSize || showAll) && ((sizeOfPreviousIdentifiers + j) < countIdentifiers()-1)">{{", "}}</span>
-                      <span *ngIf="!showAll && (sizeOfPreviousIdentifiers + j)==pageSize"> ... </span>
-                    </ng-container>
-                  </ng-container>
-                </ng-container>
-
-                <span *ngIf="!showAll && countIdentifiers() > pageSize">
-                    <a class="uk-text-muted" (click)="showAll = !showAll;">
-                        view all {{countIdentifiers()}} identifiers
-                    </a>
-                </span>
-                <span *ngIf="showAll && countIdentifiers() > pageSize">
-                    <a class="uk-text-muted" (click)="showAll = !showAll; scroll()">View less identifiers</a>
-                </span>
-
-
-    `
-    })
-
-export class ShowIdentifiersComponent {
-    @Input() identifiers: Map<string, string[]>;
-    public doiURL: string;
-    public pmcURL: string;
-    public handleURL: string;
-    public showAll: boolean = false;
-    public sizeOfIdentifiers: number = -1;
-    public sizeOfPreviousIdentifiers: number = -1;
-    public pageSize: number = 10;
-
-    constructor (private element: ElementRef) {
-        this.doiURL = OpenaireProperties.getDoiURL();
-        this.pmcURL = OpenaireProperties.getPmcURL();
-        this.handleURL = OpenaireProperties.getHandleURL();
-    }
-
-    ngOnInit() {}
-
-    public countIdentifiers(): number {
-      if(this.sizeOfIdentifiers < 0) {
-        let num: number = 0;
-        if(this.identifiers != undefined) {
-            this.identifiers.forEach(function (value, key, map) {
-                num += value.length;
-            });
-        }
-        this.sizeOfIdentifiers = num;
-      }
-      return this.sizeOfIdentifiers;
-    }
-
-    public countSizeOfPreviousIdentifiers(index: number): number {
-      let num: number = 0;
-      let i: number = 0;
-      if(this.identifiers != undefined) {
-        this.identifiers.forEach(function (value, key, map) {
-          if(i < index) {
-            num += value.length;
-          }
-          i++;
-        });
-      }
-      this.sizeOfPreviousIdentifiers= num;
-      return num;
-    }
-
-    public scroll() {
-      console.info("scroll into view");
-      if (typeof document !== 'undefined') {
-         this.element.nativeElement.scrollIntoView();
-      }
-    }
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing.module.ts	(nonexistent)
@@ -1,28 +0,0 @@
-/* This module contains all common components for all landing pages */
-
-import { NgModule}            from '@angular/core';
-import { CommonModule }        from '@angular/common';
-import { FormsModule }         from '@angular/forms';
-import { RouterModule } from '@angular/router';
-
-import {TabPagingComponent} from './tabPaging.component';
-import {ShowTitleComponent} from './showTitle.component';
-import {AddThisComponent} from './addThis.component';
-import {PiwikServiceModule} from '../utils/piwik/piwikService.module';
-import {PreviousRouteRecorder} from'../utils/piwik/previousRouteRecorder.guard';
-
-@NgModule({
-  imports: [
-    CommonModule, FormsModule, RouterModule, PiwikServiceModule
-  ],
-  declarations: [
-      TabPagingComponent,  ShowTitleComponent, AddThisComponent
-  ],
-  providers:[
-    PreviousRouteRecorder
-   ],
-  exports: [
-     TabPagingComponent, ShowTitleComponent, AddThisComponent
-    ]
-})
-export class LandingModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showAuthors.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showAuthors.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showAuthors.component.ts	(nonexistent)
@@ -1,65 +0,0 @@
-import {Component, Input, ElementRef} from '@angular/core';
-import {RouterHelper} from '../utils/routerHelper.class';
-
-@Component({
-    selector: 'showAuthors',
-    template: `
-        <span *ngIf="authors != undefined">
-            <div *ngIf="showAll">
-                <a class="uk-text-muted" (click)="showAll = !showAll;">View less authors</a>
-            </div>
-            <span *ngFor="let item of authors.slice(0,30) let i=index">
-                  <!--a href="{{item['url']}}"-->
-                  <a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(item['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+searchPage">
-                      {{item['name']}}
-                  </a>
-               <span *ngIf=" i<29 && i<(authors.length-1)">;</span>
-            </span>
-            <span *ngIf="!showAll && authors.length > 30">	... </span>
-            <span *ngIf="showAll">
-                <span *ngFor="let item of authors.slice(30) let i=index">
-                    <!--a href="{{item['url']}}"-->
-                    <a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(item['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+searchPage">
-                        {{item['name']}}
-                    </a>
-                    <span *ngIf="  i<(authors.length-1)">;</span>
-                </span>
-            </span>
-            <span *ngIf="!showAll && authors.length > 30">
-                <a class="uk-text-muted" (click)="showAll = !showAll;">
-                    view all {{authors.length}} authors
-                </a>
-            </span>
-            <span *ngIf="showAll">
-                <a class="uk-text-muted" (click)="showAll = !showAll; scroll()">View less authors</a>
-            </span>
-        </span>
-
-    `
-
-    })
-
-export class ShowAuthorsComponent {
-    @Input() authors: { [key: string]: string }[];
-    @Input() searchPage:string ="publications"
-
-    public showAll: boolean = false;
-    public routerHelper:RouterHelper = new RouterHelper();
-
-    constructor (private element: ElementRef) {
-    }
-
-    ngOnInit() {
-    }
-
-    public  quote(params: string):string {
-        return '"'+params+'"';
-    }
-
-    public scroll() {
-      console.info("scroll into view");
-      if (typeof document !== 'undefined') {
-         this.element.nativeElement.scrollIntoView();
-      }
-    }
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/searchingProjectsInTab.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/searchingProjectsInTab.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/searchingProjectsInTab.component.ts	(nonexistent)
@@ -1,121 +0,0 @@
-import {Component, Input} from '@angular/core';
-import {ActivatedRoute} from '@angular/router';
-
-import { FetchProjects } from '../utils/fetchEntitiesClasses/fetchProjects.class';
-import { SearchProjectsService } from '../services/searchProjects.service';
-
-import {OpenaireProperties, ErrorCodes} from '../utils/properties/openaireProperties';
-import {StringUtils} from '../utils/string-utils.class';
-import {RouterHelper} from '../utils/routerHelper.class';
-
-@Component({
-    selector: 'searchingProjectsTab',
-    template: `
-        <!--div *ngIf="fetchProjects.searchUtils.totalResults == 0" class = "uk-alert">
-            No projects available
-        </div-->
-        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No projects available</div>
-        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
-        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
-
-        <div *ngIf="fetchProjects.searchUtils.totalResults > 0">
-            <div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResultsNoFilters > 10">
-                <a  [queryParams]="routerHelper.createQueryParams(['organization', 'or'], [organizationId, 'and'])"
-                    routerLinkActive="router-link-active" [routerLink]="linkToSearchProjects" class="uk-button uk-button-text">
-                    View all {{fetchProjects.searchUtils.totalResultsNoFilters}} results
-                </a>
-			      </div>
-            <div class= "searchPaging uk-panel uk-margin-top">
-              <div class="uk-clearfix">
-                <div class="uk-float-right" *ngIf="fetchProjects.results  && fetchProjects.searchUtils.totalResults > fetchProjects.searchUtils.size">
-                  <paging-no-load [currentPage]="page" [totalResults]="fetchProjects.searchUtils.totalResults" [term]="keyword" [size]="size"  (pageChange)="pageChange($event)"> </paging-no-load>
-                </div>
-              </div>
-              <ul  *ngIf = "fetchProjects.funders.length > 1" class="uk-list uk-list-divider uk-margin-remove">
-                <li  *ngFor="let filter of fetchProjects.filters "  >
-                    <!--div class="text-bold">Filter by {{filter.title}}:</div-->
-                    <span *ngFor = "let value of filter.values"  class = "uk-animation-fade">
-                       <input [(ngModel)]="value.selected" type="checkbox"  (ngModelChange)="filterChange(value.selected)" />
-                       <span title = "{{value.name}}"> {{value.name}}</span><span *ngIf = "showResultCount === true" > ({{value.number}})</span>
-                    </span>
-                </li>
-
-                <li *ngIf = "fetchProjects.searchUtils.totalResults !=fetchProjects.searchUtils.totalResultsNoFilters "> Filtered {{fetchProjects.searchUtils.totalResults}} results of {{fetchProjects.searchUtils.totalResultsNoFilters}} total results</li>
-                <li></li>
-              </ul>
-
-              <tab-result  [(results)]="fetchProjects.results" [(status)]= "fetchProjects.searchUtils.status"
-                            type="project" urlParam="projectId" [showLoading] = true [showOrganizations] = false>
-              </tab-result>
-            </div>
-        </div>
-    `
-})
-
-export class SearchingProjectsTabComponent {
-    @Input() fetchProjects : FetchProjects;
-    @Input()  organizationId:string = "";
-    public page :number = 1;
-    public size :number = 10;
-    public linkToSearchProjects: string;
-
-    public routerHelper:RouterHelper = new RouterHelper();
-    public errorCodes:ErrorCodes = new ErrorCodes();
-
-    private filterQuery:string = "";
-
-    constructor (private  route: ActivatedRoute,
-                 private _searchProjectsService: SearchProjectsService) {
-    }
-
-
-    ngOnInit() {
-
-            if(this.organizationId) {
-                this.linkToSearchProjects = OpenaireProperties.getLinkToAdvancedSearchProjects();//+"?organization="+this.organizationId+"or=and";;
-                if(this.fetchProjects.searchUtils.totalResults > 0) {
-                  this.search(false,"");
-                }
-            }
-    }
-
-
-    private search(refine:boolean, filterQuery:string){
-      var refineFields:string [] = ["funder"];
-      this.fetchProjects.getResultsForOrganizations(this.organizationId, filterQuery, this.page, this.size,(refine)?refineFields:[]);
-    }
-
-    public pageChange($event) {
-      this.page=$event.value;
-      this.search(false, this.filterQuery);
-    }
-
-    public filterChange($event) {
-      console.log("Filter Changed");
-      this.updateFilters();
-      //this.search(true, this.filterQuery);
-      this.search(false, this.filterQuery);
-    }
-
-    private updateFilters (){
-      this.filterQuery = "";
-      for (let filter of this.fetchProjects.filters){
-        var filterLimits="";
-        for (let value of filter.values){
-            if(value.selected == true){
-              //filterLimits+=((filterLimits.length == 0)?'':',') +'"'+ StringUtils.URIEncode(value.id)+'"';
-              filterLimits+=((filterLimits.length == 0)?'':' or ')+filter.filterId+' exact ';
-              filterLimits+='"'+ StringUtils.URIEncode(value.id)+'"';
-             }
-        }
-        if(filterLimits.length > 0){
-          //this.filterQuery+=' and '+filter.filterId + ' exact '+ filterLimits + ' ';
-          this.filterQuery+=' and ( ' + filterLimits + ' ) ';
-        }
-
-      }
-      console.log("Filter Changed"+this.filterQuery);
-
-    }
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showTitle.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showTitle.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/showTitle.component.ts	(nonexistent)
@@ -1,66 +0,0 @@
-import {Component, Input} from '@angular/core';
-import {ActivatedRoute} from '@angular/router';
-
-@Component({
-    selector: 'showTitle',
-    template: `
-        <h2 *ngIf="title != undefined">
-            <!--span [class]="'entityTitleIcon '+iconClass"></span-->
-            <span   *ngIf="title['url'] != undefined && title['url'] != null && title['url'] != ''"
-                    class="custom-external">
-                    <!--span class=" custom-icon {{title['accessMode']}}"
-                    uk-tooltip="pos:bottom-right"
-                    [title]="title['accessMode']"-->
-                <a *ngIf="title['name'] != undefined && title['name'] != ''"
-                    href="{{title['url']}}" target="_blank"
-                    [innerHTML]="title['name']">
-                </a>
-                <a *ngIf="title['name'] == undefined || title['name'] == ''"
-                    href="{{title['url']}}" target="_blank">
-                    [no title available]
-                </a>
-            <!--/span-->
-            </span>
-            <span *ngIf="(title['name'] != undefined && title['name'] != '') &&
-                    (title['url'] == undefined || title['url'] == null || title['url'] == '')"
-                    [innerHTML]="title['name']">
-            </span>
-            <span *ngIf="(title['name'] == undefined || title['name'] == '') &&
-                    (title['url'] == undefined || title['url'] == null || title['url'] == '')"
-                     >
-                [no title available]
-            </span>
-        </h2>
-        <!--[class]="title['accessMode']"
-        uk-tooltip="pos:bottom-right"
-        [title]="title['accessMode']"
-        [innerHTML]="title['name']" -->
-    `
-
-    })
-
-export class ShowTitleComponent {
-  @Input() title: { [key: string]: string };
-  @Input() iconClass:string;
-
-  sub: any;
-
-  constructor (private route: ActivatedRoute) {}
-
-  ngOnInit() {
-    this.sub = this.route.queryParams.subscribe(
-      params => {
-        console.info("onInit showTitle");
-
-        if(this.title['accessMode'] == undefined) {
-          this.title['accessMode'] = "";
-        }
-      }
-    );
-  }
-
-  ngOnDestroy() {
-    console.info("onDestroy showTitle");
-    this.sub.unsubscribe();
-  }
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/addThis.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/addThis.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/addThis.component.ts	(nonexistent)
@@ -1,40 +0,0 @@
-import {Component, ElementRef, Input} from '@angular/core';
-import {ActivatedRoute} from '@angular/router';
-
- interface addthis {
-     layers: refresh;
- }
- interface refresh {
-     refresh: Function;
- }
- declare var addthis: addthis;
-
-//<addThis ></addThis>
-@Component({
-  selector: 'addThis',
-  template: `
-  <div class="addthis_inline_share_toolbox"></div>
-  `
-})
-export class AddThisComponent {
-  private sub:any;
-
-
-  constructor(private route: ActivatedRoute) {
-
-  }
-  ngOnInit() {
-    this.sub =  this.route.queryParams.subscribe(data => {
-
-      if (typeof document !== 'undefined') {
-        try{
-          addthis.layers.refresh();
-        }catch (e) {
-        }
-      }
-  });
-
-  }
-
-
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/tabPaging.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/tabPaging.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/tabPaging.component.ts	(nonexistent)
@@ -1,24 +0,0 @@
-import {Component, Input, Output, EventEmitter} from '@angular/core';
-
-@Component({
-    selector: 'tabPaging',
-    template: `
-        <div class="uk-panel" *ngIf="!showAll && length > 10">
-            <a (click)="changeShowAll.emit({value: true});">
-                <div class="uk-float-right">view all {{length}}</div>
-            </a>
-        </div>
-    `
-    })
-
-export class TabPagingComponent {
-    @Input() showAll: boolean;
-    @Input() length: number;
-    @Output() changeShowAll: EventEmitter<any> = new EventEmitter();
-
-    constructor () {
-    }
-
-    ngOnInit() {
-    }
-}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/metrics.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/metrics.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/metrics.module.ts	(nonexistent)
@@ -1,26 +0,0 @@
-/* This module contains all common components for all landing pages */
-
-import { NgModule}            from '@angular/core';
-import { CommonModule }        from '@angular/common';
-import { FormsModule }         from '@angular/forms';
-
- import {MetricsComponent} from './metrics.component';
- import { MetricsService } from '../services/metrics.service';
-
-@NgModule({
-  imports: [
-
-    CommonModule, FormsModule
-   ],
-  declarations: [
-     MetricsComponent
-  ],
-  providers:[
-    MetricsService
-   ],
-  exports: [
-
-    MetricsComponent
-    ]
-})
-export class MetricsModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/searchingProjectsInTab.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/searchingProjectsInTab.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/searchingProjectsInTab.module.ts	(nonexistent)
@@ -1,30 +0,0 @@
-/* This module contains all common components for all landing pages */
-
-import { NgModule}            from '@angular/core';
-import { CommonModule }        from '@angular/common';
-import { FormsModule }         from '@angular/forms';
-import { RouterModule }       from '@angular/router';
-
-import { ProjectsServiceModule} from '../services/projectsService.module';
-import { TabResultModule } from '../searchPages/searchUtils/tabResult.module';
-import { SearchingProjectsTabComponent} from './searchingProjectsInTab.component';
-
-import {PagingModule } from '../utils/paging.module';
-
-
-@NgModule({
-  imports: [
-      RouterModule, CommonModule, FormsModule,
-      ProjectsServiceModule, TabResultModule, PagingModule
-   ],
-  declarations: [
-     SearchingProjectsTabComponent
-  ],
-  providers:[
-   ],
-  exports: [
-
-    SearchingProjectsTabComponent
-    ]
-})
-export class SearchingProjectsTabModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/services/searchDatasets.service.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/services/searchDatasets.service.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/services/searchDatasets.service.ts	(revision 49174)
@@ -78,7 +78,7 @@
                     .do(res => {
                       this._cache.set(key, res);
                     })
-                    .map(res => this.parseRefineResults(id, res['refineResults']));
+                    .map(res => this.parseRefineResults(id, res['refineResults']))
     }
 
     searchDatasetsByDois (DOIs: string[], refineParams:string, page: number, size: number, refineFields:string[] ):any {
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.service.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.service.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.service.ts	(revision 49174)
@@ -17,7 +17,7 @@
 
     getDataproviderInfo (id: string):any {
         console.info("getDataProviderInfo in service");
-        let url = OpenaireProperties.getSearchAPIURLLast() + 'datasources/' +id +"?format=json";
+        let url = OpenaireProperties.getSearchAPIURLLast() + 'datasources/' +id +"?formatt=json";
         let key = url;
         if (this._cache.has(key)) {
           return Observable.of(this._cache.get(key)).map(res => this.parseDataProviderInfo(res));
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/datasourcesTab.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/datasourcesTab.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/datasourcesTab.component.ts	(revision 49174)
@@ -6,10 +6,12 @@
 @Component({
     selector: 'datasourcesTab',
     template: `
+        <!--div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
         <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No content providers available</div>
         <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
-        <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-        <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+        <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service temprorarily unavailable. Please try again later.</div>
+        <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.NOT_FOUND" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">No content providers found</div-->
+        <errorMessages [status]="[fetchDataproviders.searchUtils.status]" [type]="'content providers'"></errorMessages>
 
         <!--div *ngIf="fetchDataproviders.searchUtils.totalResults == 0" class = "uk-alert">
             No content providers available
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/find/search.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/find/search.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/find/search.component.ts	(revision 49174)
@@ -142,8 +142,8 @@
   public searchPublications() {
     this.activeTab = "publications";
     if( this.reloadPublications &&
-        this.fetchPublications.searchUtils.status != this.errorCodes.NONE &&
-        this.fetchPublications.searchUtils.status != this.errorCodes.ERROR) {
+        ( this.fetchPublications.searchUtils.status == this.errorCodes.LOADING ||
+          this.fetchPublications.searchUtils.status == this.errorCodes.DONE )) {
       this.reloadPublications = false;
       this.fetchPublications.getResultsByKeyword(this.keyword,  1, 10);
       this.linkToSearchPublications = OpenaireProperties.getLinkToSearchPublications();// + "?keyword="  + this.keyword;
@@ -152,8 +152,8 @@
    public searchDatasets() {
      this.activeTab = "research data";
      if(this.reloadDatasets &&
-        this.fetchDatasets.searchUtils.status != this.errorCodes.NONE &&
-        this.fetchDatasets.searchUtils.status != this.errorCodes.ERROR) {
+        ( this.fetchDatasets.searchUtils.status == this.errorCodes.LOADING ||
+          this.fetchDatasets.searchUtils.status == this.errorCodes.DONE )) {
        this.reloadDatasets = false;
        this.fetchDatasets.getResultsByKeyword(this.keyword,  1, 10);
        this.linkToSearchDatasets = OpenaireProperties.getLinkToSearchDatasets();// + "?keyword="  + this.keyword;
@@ -163,8 +163,8 @@
      this.activeTab = "projects";
      console.log("searchProjects");
      if(this.reloadProjects &&
-        this.fetchProjects.searchUtils.status != this.errorCodes.NONE &&
-        this.fetchProjects.searchUtils.status != this.errorCodes.ERROR) {
+        ( this.fetchProjects.searchUtils.status == this.errorCodes.LOADING ||
+          this.fetchProjects.searchUtils.status == this.errorCodes.DONE )) {
        this.reloadProjects = false;
        console.log("do the search  searchProjects");
 
@@ -175,8 +175,8 @@
    public  searchDataProviders() {
      this.activeTab = "content providers";
      if( this.reloadDataproviders &&
-         this.fetchDataproviders.searchUtils.status != this.errorCodes.NONE &&
-         this.fetchDataproviders.searchUtils.status != this.errorCodes.ERROR) {
+         ( this.fetchDataproviders.searchUtils.status == this.errorCodes.LOADING ||
+           this.fetchDataproviders.searchUtils.status == this.errorCodes.DONE )) {
        this.reloadDataproviders = false;
        this.fetchDataproviders.getResultsByKeyword(this.keyword, 1, 10);
        this.linkToSearchDataproviders = OpenaireProperties.getLinkToSearchDataProviders();// + "?keyword="  + this.keyword;
@@ -185,8 +185,8 @@
    public searchOrganizations() {
      this.activeTab = "organizations";
      if( this.reloadOrganizations &&
-         this.fetchOrganizations.searchUtils.status != this.errorCodes.NONE &&
-         this.fetchOrganizations.searchUtils.status != this.errorCodes.ERROR) {
+         ( this.fetchOrganizations.searchUtils.status == this.errorCodes.LOADING ||
+           this.fetchOrganizations.searchUtils.status == this.errorCodes.DONE )) {
        this.reloadOrganizations = false;
        this.fetchOrganizations.getResultsByKeyword(this.keyword,  1, 10);
        this.linkToSearchOrganizations = OpenaireProperties.getLinkToSearchOrganizations();// + "?keyword="  + this.keyword;
@@ -234,7 +234,14 @@
              },
              err => {
        		    console.log(err);
-              this.fetchPublications.searchUtils.status = this.errorCodes.ERROR;
+              if(err.status == '404') {
+                this.fetchPublications.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.fetchPublications.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.fetchPublications.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
+              //this.fetchPublications.searchUtils.status = this.errorCodes.ERROR;
        		 }
       );
     }
@@ -251,7 +258,14 @@
              },
              err => {
                  console.log(err);
-                 this.fetchDatasets.searchUtils.status = this.errorCodes.ERROR;
+                 if(err.status == '404') {
+                   this.fetchDatasets.searchUtils.status = this.errorCodes.NOT_FOUND;
+                 } else if(err.status == '500') {
+                   this.fetchDatasets.searchUtils.status = this.errorCodes.ERROR;
+                 } else {
+                   this.fetchDatasets.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                 }
+                 //this.fetchDatasets.searchUtils.status = this.errorCodes.ERROR;
               }
        );
     }
@@ -268,7 +282,14 @@
              },
              err => {
                  console.log(err);
-                 this.fetchProjects.searchUtils.status = this.errorCodes.ERROR;
+                 if(err.status == '404') {
+                   this.fetchProjects.searchUtils.status = this.errorCodes.NOT_FOUND;
+                 } else if(err.status == '500') {
+                   this.fetchProjects.searchUtils.status = this.errorCodes.ERROR;
+                 } else {
+                   this.fetchProjects.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                 }
+                 //this.fetchProjects.searchUtils.status = this.errorCodes.ERROR;
               }
        );
      }
@@ -289,7 +310,14 @@
              },
              err => {
                  console.log(err);
-                 this.fetchOrganizations.searchUtils.status = this.errorCodes.ERROR;
+                 if(err.status == '404') {
+                   this.fetchOrganizations.searchUtils.status = this.errorCodes.NOT_FOUND;
+                 } else if(err.status == '500') {
+                   this.fetchOrganizations.searchUtils.status = this.errorCodes.ERROR;
+                 } else {
+                   this.fetchOrganizations.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                 }
+                 //this.fetchOrganizations.searchUtils.status = this.errorCodes.ERROR;
 
               }
          );
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.component.html
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.component.html	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.component.html	(revision 49174)
@@ -87,10 +87,11 @@
             <div class="uk-margin custom-tab-content">
 
                 <div *ngIf="activeTab=='Publications'" class="uk-animation-fade">
-                    <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No publications available</div>
+                    <!--div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No publications available</div>
                     <div *ngIf="fetchPublications.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
                     <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-                    <div *ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+                    <div *ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+                    <errorMessages [status]="[fetchPublications.searchUtils.status]" [type]="'publications'"></errorMessages>
 
                     <div *ngIf="fetchPublications.searchUtils.totalResults > 0">
                         <div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10">
@@ -115,10 +116,11 @@
                         No content providers available
                     </div-->
 
-                    <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No content providers available</div>
+                    <!--div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No content providers available</div>
                     <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
                     <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-                    <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+                    <div *ngIf="fetchDataproviders.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+                    <errorMessages [status]="[fetchDataproviders.searchUtils.status]" [type]="'content providers'"></errorMessages>
 
                     <div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
 
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchDataproviders.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchDataproviders.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchDataproviders.component.ts	(revision 49174)
@@ -20,6 +20,8 @@
 				         (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="datasources" advancedSearchLink="/search/advanced/dataproviders"
                  [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults"
                  searchFormClass="datasourcesSearchForm">
     </search-page>
 
@@ -26,6 +28,8 @@
     `
 })
 export class SearchDataprovidersComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public totalResults:number  = 0 ;
@@ -35,7 +39,7 @@
   public _location:Location;
   public searchFields:SearchFields = new SearchFields();
   public refineFields: string[] =  this.searchFields.DATASOURCE_REFINE_FIELDS;
-   public fieldIdsMap= this.searchFields.DATASOURCE_FIELDS;
+  public fieldIdsMap= this.searchFields.DATASOURCE_FIELDS;
   public CSV: any = {  "columnNames":  [ "Title", "Type", "Coutries", "Compatibility" ],
                         "export":[]
                      };
@@ -43,12 +47,14 @@
   public csvParams: string;
 
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   @ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
 
   constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchDataprovidersService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.page =1;
     this.baseUrl = OpenaireProperties.getLinkToSearchDataProviders();
   }
@@ -59,17 +65,22 @@
      var firstLoad =true;
 
     this.sub =  this.route.queryParams.subscribe(params => {
-        this.searchUtils.keyword = (params['keyword']?params['keyword']:'');
-        var refine = true;
-        if(this.searchUtils.page != ((params['page']=== undefined)?1:+params['page']) && this.filters && !firstLoad){
-          refine = false;
+      if(params['page'] && this.searchUtils.page != params['page']) {
+        this.loadPaging = false;
+        this.oldTotalResults = this.searchUtils.totalResults;
+      }
 
-        }
-        firstLoad = false;
-        this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
+      this.searchUtils.keyword = (params['keyword']?params['keyword']:'');
+      var refine = true;
+      if(this.searchUtils.page != ((params['page']=== undefined)?1:+params['page']) && this.filters && !firstLoad){
+        refine = false;
 
-         var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
-        this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
+      }
+      firstLoad = false;
+      this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
+
+      var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
+      this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
     });
   }
 
@@ -83,8 +94,8 @@
   }
 
   public getNumForEntity(entity: string, id:string) {
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
       if(id != "" && entity != "") {
 
@@ -92,10 +103,10 @@
               data => {
                   this.searchUtils.totalResults = data;
 
-                  var errorCodes:ErrorCodes = new ErrorCodes();
-                  this.searchUtils.status = errorCodes.DONE;
+                  //var errorCodes:ErrorCodes = new ErrorCodes();
+                  this.searchUtils.status = this.errorCodes.DONE;
                   if(this.searchUtils.totalResults == 0 ){
-                    this.searchUtils.status = errorCodes.NONE;
+                    this.searchUtils.status = this.errorCodes.NONE;
                   }
               },
               err => {
@@ -104,8 +115,16 @@
                   // if( ){
                   //   this.searchUtils.status = ErrorCodes.ERROR;
                   // }
-                  var errorCodes:ErrorCodes = new ErrorCodes();
-                  this.searchUtils.status = errorCodes.ERROR;
+                  //var errorCodes:ErrorCodes = new ErrorCodes();
+                  //this.searchUtils.status = errorCodes.ERROR;
+
+                  if(err.status == '404') {
+                    this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                  } else if(err.status == '500') {
+                    this.searchUtils.status = this.errorCodes.ERROR;
+                  } else {
+                    this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                  }
               }
           );
       }
@@ -112,17 +131,17 @@
   }
 
   public getNumForSearch(keyword: string) {
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
       this._searchDataprovidersService.numOfDataproviders(keyword).subscribe(
           data => {
               this.searchUtils.totalResults = data;
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -131,8 +150,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -148,10 +174,10 @@
               console.info("search Dataproviders forDeposit: [id:"+id+", type:"+type+" ]  [total results:"+this.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -160,8 +186,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -181,10 +214,10 @@
                 console.info("search Dataproviders for "+entity+": [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
                 this.results = data[1];
 
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.DONE;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                this.searchUtils.status = this.errorCodes.DONE;
                 if(this.searchUtils.totalResults == 0 ){
-                  this.searchUtils.status = errorCodes.NONE;
+                  this.searchUtils.status = this.errorCodes.NONE;
                 }
             },
             err => {
@@ -193,8 +226,15 @@
                 // if( ){
                 //   this.searchUtils.status = ErrorCodes.ERROR;
                 // }
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.ERROR;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                //this.searchUtils.status = errorCodes.ERROR;
+                if(err.status == '404') {
+                  this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                } else if(err.status == '500') {
+                  this.searchUtils.status = this.errorCodes.ERROR;
+                } else {
+                  this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                }
             }
         );
     }
@@ -208,10 +248,10 @@
             console.info("search Dataproviders for Entity Registry: [Id:"+id+" ]  [total results:"+this.searchUtils.totalResults+"]");
             this.results = data[1];
 
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
         },
         err => {
@@ -220,8 +260,15 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
         }
     );
   }
@@ -239,8 +286,8 @@
     // if(!refine && !this.searchPage){
     //     this.searchPage = new SearchPageComponent(this._location);
     // }
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
     //this.searchPage.openLoading();
     this.disableForms = true;
@@ -258,15 +305,15 @@
             this.searchPage.checkSelectedFilters(this.filters);
             // this.filters = this.searchPage.checkSelectedFilters(data[2]);
             this.searchPage.updateBaseUrlWithParameters(this.filters);
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
-            if(this.searchUtils.status == errorCodes.DONE) {
+            if(this.searchUtils.status == this.errorCodes.DONE) {
               // Page out of limit!!!
               let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
               if(!(Number.isInteger(totalPages))) {
@@ -274,7 +321,7 @@
               }
               if(totalPages < page) {
                 this.searchUtils.totalResults = 0;
-                this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+                this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
               }
             }
         },
@@ -284,8 +331,16 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
+
             //this.searchPage.closeLoading();
             this.disableForms = false;
         }
@@ -297,6 +352,8 @@
   }
 
   public queryChanged($event) {
+    this.loadPaging = true;
+    
     var parameters = $event.value;
     this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size);
   }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchDatasets.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchDatasets.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchDatasets.component.ts	(revision 49174)
@@ -22,6 +22,8 @@
                  [baseUrl] = "baseUrl" (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="datasets" advancedSearchLink="/search/advanced/datasets"
                  [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults"
                  searchFormClass="datasetsSearchForm">
     </search-page>
     `
@@ -28,6 +30,8 @@
 })
 
 export class SearchDatasetsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters: Filter[] =[];
   // public totalResults:number  = 0 ;
@@ -43,12 +47,14 @@
   private _location:Location;
   public csvParams: string;
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   @ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
   constructor (private route: ActivatedRoute, private _searchDatasetsService: SearchDatasetsService ) {
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.page =1;
     this.baseUrl = OpenaireProperties.getLinkToSearchDatasets();
 
@@ -60,6 +66,11 @@
      this.searchPage.type = "research data";
      var firstLoad =true;
     this.sub =  this.route.queryParams.subscribe(params => {
+      if(params['page'] && this.searchUtils.page != params['page']) {
+        this.loadPaging = false;
+        this.oldTotalResults = this.searchUtils.totalResults;
+      }
+
       this.searchUtils.keyword = (params['keyword']?params['keyword']:'');
       var refine = true;
       if(this.searchUtils.page != ((params['page']=== undefined)?1:+params['page']) && this.filters && !firstLoad){
@@ -99,10 +110,10 @@
               console.info("search Research Data for "+entity+": [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -111,8 +122,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -134,10 +152,10 @@
               console.info("search Research Data for Dataproviders: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -146,8 +164,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -175,8 +200,8 @@
   // if(!refine && !this.searchPage){
   //     this.searchPage = new SearchPageComponent(this._location);
   // }
-  var errorCodes:ErrorCodes = new ErrorCodes();
-  this.searchUtils.status = errorCodes.LOADING;
+  //var errorCodes:ErrorCodes = new ErrorCodes();
+  this.searchUtils.status = this.errorCodes.LOADING;
   //this.searchPage.openLoading();
   this.disableForms = true;
   this.results = [];
@@ -192,15 +217,15 @@
           }
           this.searchPage.checkSelectedFilters(this.filters);
           this.searchPage.updateBaseUrlWithParameters(this.filters);
-          var errorCodes:ErrorCodes = new ErrorCodes();
-          this.searchUtils.status = errorCodes.DONE;
+          //var errorCodes:ErrorCodes = new ErrorCodes();
+          this.searchUtils.status = this.errorCodes.DONE;
           if(this.searchUtils.totalResults == 0 ){
-            this.searchUtils.status = errorCodes.NONE;
+            this.searchUtils.status = this.errorCodes.NONE;
           }
           //this.searchPage.closeLoading();
           this.disableForms = false;
 
-          if(this.searchUtils.status == errorCodes.DONE) {
+          if(this.searchUtils.status == this.errorCodes.DONE) {
             // Page out of limit!!!
             let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
             if(!(Number.isInteger(totalPages))) {
@@ -208,7 +233,7 @@
             }
             if(totalPages < page) {
               this.searchUtils.totalResults = 0;
-              this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+              this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
             }
           }
       },
@@ -218,8 +243,16 @@
           // if( ){
           //   this.searchUtils.status = ErrorCodes.ERROR;
           // }
-          var errorCodes:ErrorCodes = new ErrorCodes();
-          this.searchUtils.status = errorCodes.ERROR;
+          //var errorCodes:ErrorCodes = new ErrorCodes();
+          //this.searchUtils.status = errorCodes.ERROR;
+          if(err.status == '404') {
+            this.searchUtils.status = this.errorCodes.NOT_FOUND;
+          } else if(err.status == '500') {
+            this.searchUtils.status = this.errorCodes.ERROR;
+          } else {
+            this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+          }
+
           //this.searchPage.closeLoading();
           this.disableForms = false;
       }
@@ -233,6 +266,8 @@
   }
 
   public queryChanged($event) {
+    this.loadPaging = true;
+    
     var parameters = $event.value;
     //this.getResults(parameters, this.searchUtils.page, this.searchUtils.size, "searchPage");
     this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchPublications.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchPublications.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchPublications.component.ts	(revision 49174)
@@ -25,6 +25,8 @@
                  [csvParams]="csvParams" csvPath="publications"
                  advancedSearchLink="/search/advanced/publications"
                  [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults"
                  searchFormClass="publicationsSearchForm">
     </search-page>
 
@@ -32,6 +34,8 @@
 
 })
 export class SearchPublicationsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public searchUtils:SearchUtilsClass = new SearchUtilsClass();
@@ -54,10 +58,12 @@
   public CSVDownloaded = false;
   public csvParams: string;
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   constructor (private route: ActivatedRoute, private _searchPublicationsService: SearchPublicationsService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.page =1;
     this.baseUrl = OpenaireProperties.getLinkToSearchPublications();
 
@@ -69,6 +75,11 @@
     this.searchPage.type = "publications";
     var firstLoad =true;
     this.sub =  this.route.queryParams.subscribe(params => {
+        if(params['page'] && this.searchUtils.page != params['page']) {
+          this.loadPaging = false;
+          this.oldTotalResults = this.searchUtils.totalResults;
+        }
+
         this.searchUtils.keyword = (params['keyword']?params['keyword']:'');
         var refine = true;
         if(this.searchUtils.page != ((params['page']=== undefined)?1:+params['page']) && this.filters && !firstLoad){
@@ -106,10 +117,10 @@
               console.info("search Publications for "+entity+": [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -118,8 +129,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -141,10 +159,10 @@
               console.info("search Publications for Dataproviders: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -153,8 +171,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -185,8 +210,8 @@
   //     this.searchPage = new SearchPageComponent(this._location);
   // }
 
-  var errorCodes:ErrorCodes = new ErrorCodes();
-  this.searchUtils.status = errorCodes.LOADING;
+  //var errorCodes:ErrorCodes = new ErrorCodes();
+  this.searchUtils.status = this.errorCodes.LOADING;
   //this.searchPage.openLoading();
   this.disableForms = true;
   this.results = [];
@@ -203,16 +228,16 @@
           this.searchPage.checkSelectedFilters(this.filters);
           this.searchPage.updateBaseUrlWithParameters(this.filters);
 
-          var errorCodes:ErrorCodes = new ErrorCodes();
+          //var errorCodes:ErrorCodes = new ErrorCodes();
 
-          this.searchUtils.status = errorCodes.DONE;
+          this.searchUtils.status = this.errorCodes.DONE;
           if(this.searchUtils.totalResults == 0 ){
-            this.searchUtils.status = errorCodes.NONE;
+            this.searchUtils.status = this.errorCodes.NONE;
           }
           //this.searchPage.closeLoading();
           this.disableForms = false;
 
-          if(this.searchUtils.status == errorCodes.DONE) {
+          if(this.searchUtils.status == this.errorCodes.DONE) {
             // Page out of limit!!!
             let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
             if(!(Number.isInteger(totalPages))) {
@@ -220,7 +245,7 @@
             }
             if(totalPages < page) {
               this.searchUtils.totalResults = 0;
-              this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+              this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
             }
           }
       },
@@ -230,8 +255,16 @@
           // if( ){
           //   this.searchUtils.status = ErrorCodes.ERROR;
           // }
-          var errorCodes:ErrorCodes = new ErrorCodes();
-          this.searchUtils.status = errorCodes.ERROR;
+          //var errorCodes:ErrorCodes = new ErrorCodes();
+          //this.searchUtils.status = errorCodes.ERROR;
+          if(err.status == '404') {
+            this.searchUtils.status = this.errorCodes.NOT_FOUND;
+          } else if(err.status == '500') {
+            this.searchUtils.status = this.errorCodes.ERROR;
+          } else {
+            this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+          }
+
           //this.searchPage.closeLoading();
           this.disableForms = false;
 
@@ -263,6 +296,8 @@
 }*/
 
   public queryChanged($event) {
+    this.loadPaging = true;
+
     var parameters = $event.value;
     console.info("queryChanged: Execute search query "+parameters);
     console.info("Search Pubs::page "+this.searchUtils.page);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/projectsTab.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/projectsTab.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/projectsTab.component.ts	(revision 49174)
@@ -7,10 +7,11 @@
 @Component({
     selector: 'projectsTab',
     template: `
-        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No projects available</div>
+        <!--div *ngIf="fetchProjects.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No projects available</div>
         <div *ngIf="fetchProjects.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
         <div *ngIf="fetchProjects.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+        <errorMessages [status]="[fetchProjects.searchUtils.status]" [type]="'projects'"></errorMessages>
 
         <!--div *ngIf="fetchProjects.searchUtils.totalResults == 0" class = "uk-alert">
             No projects available
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.component.html
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.component.html	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.component.html	(revision 49174)
@@ -165,7 +165,7 @@
                           <!--div *ngIf="fetchPublications.searchUtils.totalResults == 0 && fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert  uk-alert-primary">
                               No statistics available
                           </div-->
-                          <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE && fetchDatasets.searchUtils.status == errorCodes.NONE"
+                          <!--div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE && fetchDatasets.searchUtils.status == errorCodes.NONE"
                                 class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No statistics available</div>
                           <div *ngIf="fetchPublications.searchUtils.status == errorCodes.ERROR || fetchDatasets.searchUtils.status == errorCodes.ERROR"
                                 class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
@@ -172,8 +172,9 @@
                           <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NOT_AVAILABLE || fetchDatasets.searchUtils.status == errorCodes.NOT_AVAILABLE"
                                 class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
                           <div *ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING || fetchDatasets.searchUtils.status == errorCodes.LOADING"
-                                class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+                                class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
 
+                          <errorMessages [status]="[fetchPublications.searchUtils.status, fetchDatasets.searchUtils.status]" [type]="'statistics'"></errorMessages>
 
                           <div *ngIf="(fetchPublications.searchUtils.totalResults != 0 || fetchDatasets.searchUtils.totalResults != 0)">
                             <p class="uk-text-bold">Latest Research Result Timeline</p>
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.component.ts	(revision 49174)
@@ -160,7 +160,7 @@
             }
         },
         err => {
-          console.log(err)
+          console.log(err);
           // console.info("error");
           this.errorMessage = 'No dataProvider found';
           this.showLoading = false;
@@ -271,11 +271,9 @@
    }
 
    private searchPublications(page: number, size: number) {
-     if(this.fetchPublications.searchUtils.status == this.errorCodes.NONE) {
-       this.reloadPublications = false;
-     }
-
-     if(this.reloadPublications) {
+     if(  this.reloadPublications &&
+          ( this.fetchPublications.searchUtils.status == this.errorCodes.LOADING ||
+            this.fetchPublications.searchUtils.status == this.errorCodes.DONE ) ) {
        this.fetchPublications.getResultsForDataproviders(this.datasourceId, this.dataProviderInfo.resultsBy, page, size);
      }
      this.reloadPublications = false;
@@ -286,11 +284,9 @@
     }
 
     private searchDatasets(page: number, size: number) {
-      if(this.fetchDatasets.searchUtils.status == this.errorCodes.NONE) {
-        this.reloadDatasets = false;
-      }
-
-      if(this.reloadDatasets) {
+      if( this.reloadDatasets &&
+          ( this.fetchDatasets.searchUtils.status == this.errorCodes.LOADING ||
+            this.fetchDatasets.searchUtils.status == this.errorCodes.DONE ) ) {
         this.fetchDatasets.getResultsForDataproviders(this.datasourceId, this.dataProviderInfo.resultsBy, page, size);
       }
       this.reloadDatasets = false;
@@ -301,11 +297,9 @@
     }
 
     private searchProjects(page: number, size: number) {
-      if(this.fetchProjects.searchUtils.status == this.errorCodes.NONE) {
-        this.reloadProjects = false;
-      }
-
-      if(this.reloadProjects) {
+      if( this.reloadProjects &&
+          ( this.fetchProjects.searchUtils.status == this.errorCodes.LOADING ||
+            this.fetchProjects.searchUtils.status == this.errorCodes.DONE ) ) {
         this.fetchProjects.getResultsForDataproviders(this.datasourceId, page, size);
       }
       this.reloadProjects = false;
@@ -316,11 +310,9 @@
     }
 
     private searchDatasources(page: number, size: number) {
-      if(this.fetchDataproviders.searchUtils.status == this.errorCodes.NONE) {
-        this.reloadDataproviders = false;
-      }
-
-      if(this.reloadDataproviders) {
+      if( this.reloadDataproviders &&
+          ( this.fetchDataproviders.searchUtils.status == this.errorCodes.LOADING ||
+            this.fetchDataproviders.searchUtils.status == this.errorCodes.DONE ) ) {
         this.fetchDataproviders.getResultsForDataproviders(this.datasourceId, page, size);
       }
       this.reloadDataproviders = false;
@@ -332,13 +324,13 @@
 
     private searchRelatedDatasources(page: number, size: number) {
       // Currently no counting is done for this tab. Following condition is always false
-      if(this.fetchAggregatorsPublications.searchUtils.status == this.errorCodes.NONE
-          && this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.NONE) {
-        this.reloadRelatedDatasources = false;
-        this.loadingRelatedDatasources = false;
-      }
 
-      if(this.reloadRelatedDatasources) {
+      if( this.reloadRelatedDatasources &&
+          ( this.fetchAggregatorsPublications.searchUtils.status == this.errorCodes.LOADING ||
+            this.fetchAggregatorsPublications.searchUtils.status == this.errorCodes.DONE )
+          &&
+          ( this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.LOADING ||
+            this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.DONE ) ) {
         this.relatedDatasourcesSub = Observable.merge(this.fetchAggregatorsPublications.requestComplete, this.fetchAggregatorsDatasets.requestComplete)
                                .subscribe(
                                  data => {},
@@ -348,7 +340,9 @@
 
          this.fetchAggregatorsPublications.getAggregatorResults(this.datasourceId, page, size);
          this.fetchAggregatorsDatasets.getAggregatorResults(this.datasourceId, page, size);
-        }
+       } else {
+         this.loadingRelatedDatasources = false;
+       }
 
 
       this.reloadRelatedDatasources = false;
@@ -361,7 +355,8 @@
 
 
     private preprocessRelatedDatasources() {
-      if(this.fetchAggregatorsPublications.searchUtils.status == this.errorCodes.DONE || this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.DONE) {
+      if( this.fetchAggregatorsPublications.searchUtils.status == this.errorCodes.DONE ||
+          this.fetchAggregatorsDatasets.searchUtils.status == this.errorCodes.DONE ) {
         this.dataProviderInfo.relatedDatasources = new Map<string, {"name": string, "countPublications": string, "countDatasets": string}>();
       }
       for(let result of this.fetchAggregatorsPublications.results) {
@@ -379,7 +374,6 @@
           this.dataProviderInfo.relatedDatasources.get(result.id).countDatasets = parseInt(this.dataProviderInfo.relatedDatasources.get(result.id).countDatasets + result.count)+"";
         }
       }
-
       this.loadingRelatedDatasources = false;
     }
 
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/dataProvider.module.ts	(revision 49174)
@@ -4,10 +4,11 @@
 import { RouterModule } from '@angular/router';
 
 import {IFrameModule} from '../../utils/iframe.module';
+import {ErrorMessagesModule} from '../../utils/errorMessages.module';
 // import { ResultLandingModule } from '../resultLanding.module';
 import {TabResultModule } from '../../searchPages/searchUtils/tabResult.module';
-import {MetricsModule} from '../metrics.module';
-import { LandingModule } from '../landing.module';
+import {MetricsModule} from '../landing-utils/metrics.module';
+import {LandingModule} from '../landing-utils/landing.module';
 import {PagingModule} from '../../utils/paging.module';
 
 import {PublicationsTabComponent} from './publicationsTab.component';
@@ -20,7 +21,7 @@
 // import {TabsComponent} from './tabs.component';
 
 import {DataProviderComponent} from './dataProvider.component';
-import { DataProviderService} from './dataProvider.service';
+import {DataProviderService} from './dataProvider.service';
 import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
 import {DatasetsServiceModule} from '../../services/datasetsService.module';
 import {ProjectsServiceModule} from '../../services/projectsService.module';
@@ -32,7 +33,7 @@
 @NgModule({
   imports:
   [CommonModule, FormsModule, RouterModule,DataProviderRoutingModule,
-    TabResultModule, IFrameModule, MetricsModule, LandingModule,
+    TabResultModule, IFrameModule, ErrorMessagesModule, MetricsModule, LandingModule,
     DataProvidersServiceModule, DatasetsServiceModule, ProjectsServiceModule, PublicationsServiceModule,
     PagingModule],
   declarations:
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.module.ts	(revision 49174)
@@ -5,6 +5,7 @@
 
 import {LoadingModalModule} from '../../utils/modal/loadingModal.module';
 import {AlertModalModule} from '../../utils/modal/alertModal.module';
+import {ErrorMessagesModule} from '../../utils/errorMessages.module';
 
 import { OrganizationServiceModule} from '../../services/organizationService.module';
 // import { ProjectsServiceModule} from '../../services/projectsService.module';
@@ -11,7 +12,7 @@
 import { OrganizationComponent } from './organization.component';
 import { OrganizationRoutingModule } from './organization-routing.module';
 
-import { LandingModule } from '../landing.module';
+import { LandingModule } from '../landing-utils/landing.module';
 import {TabResultModule } from '../../searchPages/searchUtils/tabResult.module';
 import {DataProvidersServiceModule} from '../../services/dataProvidersService.module';
 import {ReportsServiceModule} from '../../services/reportsService.module';
@@ -18,13 +19,13 @@
 import {PublicationsServiceModule} from '../../services/publicationsService.module';
 import {ProjectsServiceModule} from '../../services/projectsService.module';
 
-import { SearchingProjectsTabModule} from '../searchingProjectsInTab.module';
+import { SearchingProjectsTabModule} from '../landing-utils/searchingProjectsInTab.module';
 import {FreeGuard} from'../../login/freeGuard.guard';
 
 @NgModule({
   imports: [
     CommonModule, FormsModule, RouterModule,
-    LoadingModalModule, AlertModalModule,
+    LoadingModalModule, AlertModalModule, ErrorMessagesModule,
     LandingModule,
     OrganizationRoutingModule,
     TabResultModule,
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchDataProviders.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchDataProviders.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchDataProviders.component.ts	(revision 49174)
@@ -21,7 +21,9 @@
                   [(searchUtils)] = "searchUtils"
                  (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="resources" simpleSearchLink="/search/find/dataproviders"
-                 [disableForms]="disableForms">
+                 [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults">
     </advanced-search-page>
 
     `
@@ -28,6 +30,8 @@
  })
 
 export class AdvancedSearchDataProvidersComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public searchUtils:SearchUtilsClass = new SearchUtilsClass();
@@ -41,12 +45,13 @@
   public resourcesQuery = "(oaftype exact datasource)";
   public csvParams: string;
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   constructor (private route: ActivatedRoute, private _searchDataProvidersService: SearchDataprovidersService ) {
-
     this.results =[];
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.baseUrl = OpenaireProperties.searchLinkToAdvancedDataProviders;
     console.info("Con -base url:"+this.searchUtils.baseUrl );
 
@@ -53,15 +58,19 @@
   }
   ngOnInit() {
    this.sub =  this.route.queryParams.subscribe(params => {
-      let page = (params['page']=== undefined)?0:+params['page'];
-      this.searchUtils.page = ( page < 1 ) ? 1 : page;
-      this.searchPage.fieldIds = this.fieldIds;
-      this.selectedFields =[];
-      this.searchPage.selectedFields = this.selectedFields;
-      this.searchPage.fieldIdsMap = this.fieldIdsMap;
-      this.searchPage.getSelectedFiltersFromUrl(params);
-      this.getResults(this.searchPage.createQueryParameters(),  this.searchUtils.page, this.searchUtils.size);
+     if(params['page'] && this.searchUtils.page != params['page']) {
+       this.loadPaging = false;
+       this.oldTotalResults = this.searchUtils.totalResults;
+     }
 
+    let page = (params['page']=== undefined)?0:+params['page'];
+    this.searchUtils.page = ( page < 1 ) ? 1 : page;
+    this.searchPage.fieldIds = this.fieldIds;
+    this.selectedFields =[];
+    this.searchPage.selectedFields = this.selectedFields;
+    this.searchPage.fieldIdsMap = this.fieldIdsMap;
+    this.searchPage.getSelectedFiltersFromUrl(params);
+    this.getResults(this.searchPage.createQueryParameters(),  this.searchUtils.page, this.searchUtils.size);
     });
   }
   ngOnDestroy() {
@@ -75,14 +84,14 @@
         this.csvParams ="&type=datasources&query="+this.resourcesQuery;
       }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     //this.searchPage.openLoading();
     this.disableForms = true;
     this.results = [];
     this.searchUtils.totalResults = 0;
 
-    console.info("Advanced Search for Publications: Execute search query "+parameters);
+    console.info("Advanced Search for Content Providers: Execute search query "+parameters);
      this._searchDataProvidersService.advancedSearchDataproviders(parameters,  page, size).subscribe(
         data => {
             this.searchUtils.totalResults = data[0];
@@ -89,16 +98,16 @@
             console.info("Adv Search Content Providers total="+this.searchUtils.totalResults);
             this.results = data[1];
             this.searchPage.updateBaseUrlWithParameters();
-            var errorCodes:ErrorCodes = new ErrorCodes();
-             this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
-            if(this.searchUtils.status == errorCodes.DONE) {
-              // Page out of limit!!!
+            if(this.searchUtils.status == this.errorCodes.DONE) {
+              // Page out of limit
               let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
               if(!(Number.isInteger(totalPages))) {
                   totalPages = (parseInt(totalPages, 10) + 1);
@@ -105,7 +114,7 @@
               }
               if(totalPages < page) {
                 this.searchUtils.totalResults = 0;
-                this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+                this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
               }
             }
         },
@@ -116,8 +125,15 @@
             // if( ){
             //   this.searchUtils.status = errorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
             //this.searchPage.closeLoading();
             this.disableForms = false;
         }
@@ -125,6 +141,8 @@
   }
 
   public queryChanged($event) {
+    this.loadPaging = true;
+    
     var parameters = $event.value;
     this.getResults(parameters, this.searchUtils.page,this.searchUtils.size);
     console.info("queryChanged: Execute search query "+parameters);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchOrganizations.component.ts	(revision 49174)
@@ -20,7 +20,9 @@
                  [(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap"   [(selectedFields)]="selectedFields"
                  (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="resources" simpleSearchLink="/search/find/organizations"
-                 [disableForms]="disableForms">
+                 [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults">
     </advanced-search-page>
 
     `
@@ -27,6 +29,8 @@
  })
 
 export class AdvancedSearchOrganizationsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public searchUtils:SearchUtilsClass = new SearchUtilsClass();
@@ -37,15 +41,16 @@
   public selectedFields:AdvancedField[] =  [];
   public csvParams: string;
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   @ViewChild (AdvancedSearchPageComponent) searchPage : AdvancedSearchPageComponent ;
 
 public resourcesQuery = "(oaftype exact organization)";
   constructor (private route: ActivatedRoute, private _searchOrganizationsService: SearchOrganizationsService ) {
-
     this.results =[];
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.baseUrl = OpenaireProperties.searchLinkToAdvancedOrganizations;
 
 
@@ -52,10 +57,15 @@
 
   }
   ngOnInit() {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
-   this.sub =  this.route.queryParams.subscribe(params => {
+    this.sub =  this.route.queryParams.subscribe(params => {
+      if(params['page'] && this.searchUtils.page != params['page']) {
+        this.loadPaging = false;
+        this.oldTotalResults = this.searchUtils.totalResults;
+      }
+
       let page = (params['page']=== undefined)?1:+params['page'];
       this.searchUtils.page = ( page <= 0 ) ? 1 : page;
       this.searchPage.fieldIds = this.fieldIds;
@@ -78,8 +88,8 @@
         this.csvParams ="&type=organizations&query="+this.resourcesQuery;
       }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     //this.searchPage.openLoading();
     this.disableForms = true;
     this.results = [];
@@ -92,15 +102,15 @@
             console.info("search Organizations total="+this.searchUtils.totalResults);
             this.results = data[1];
             this.searchPage.updateBaseUrlWithParameters();
-            var errorCodes:ErrorCodes = new ErrorCodes();
-             this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
-            if(this.searchUtils.status == errorCodes.DONE) {
+            if(this.searchUtils.status == this.errorCodes.DONE) {
               // Page out of limit!!!
               let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
               if(!(Number.isInteger(totalPages))) {
@@ -108,7 +118,7 @@
               }
               if(totalPages < page) {
                 this.searchUtils.totalResults = 0;
-                this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+                this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
               }
             }
         },
@@ -119,8 +129,16 @@
             // if( ){
             //   this.searchUtils.status = errorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
+
             //this.searchPage.closeLoading();
             this.disableForms = false;
         }
@@ -131,6 +149,8 @@
   }
 
   public queryChanged($event) {
+    this.loadPaging = true;
+    
     var parameters = $event.value;
     this.getResults(parameters, this.searchUtils.page,this.searchUtils.size);
     console.info("queryChanged: Execute search query "+parameters);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchDatasets.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchDatasets.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchDatasets.component.ts	(revision 49174)
@@ -20,7 +20,9 @@
                  [(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap"   [(selectedFields)]="selectedFields"
                  (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="resources" simpleSearchLink="/search/find/datasets"
-                 [disableForms]="disableForms">
+                 [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults">
     </advanced-search-page>
 
     `
@@ -27,28 +29,29 @@
  })
 
 export class AdvancedSearchDatasetsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
 
   public searchUtils:SearchUtilsClass = new SearchUtilsClass();
-
   public searchFields:SearchFields = new SearchFields();
 
+  public fieldIds:  string[] = this.searchFields.RESULT_ADVANCED_FIELDS;
+  public fieldIdsMap= this.searchFields.RESULT_FIELDS;
+  public selectedFields:AdvancedField[] =  [];
 
-    public fieldIds:  string[] = this.searchFields.RESULT_ADVANCED_FIELDS;
-    public fieldIdsMap= this.searchFields.RESULT_FIELDS;
-    public selectedFields:AdvancedField[] =  [];
-
   @ViewChild (AdvancedSearchPageComponent) searchPage : AdvancedSearchPageComponent ;
   public resourcesQuery = "( (oaftype exact result) and (resulttypeid exact dataset)  )";
   public csvParams: string;
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   constructor (private route: ActivatedRoute, private _searchDatasetsService: SearchDatasetsService ) {
-
     this.results =[];
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.baseUrl = OpenaireProperties.searchLinkToAdvancedDatasets;
 
 
@@ -55,9 +58,14 @@
 
   }
   ngOnInit() {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
-   this.sub =  this.route.queryParams.subscribe(params => {
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
+    this.sub =  this.route.queryParams.subscribe(params => {
+      if(params['page'] && this.searchUtils.page != params['page']) {
+        this.loadPaging = false;
+        this.oldTotalResults = this.searchUtils.totalResults;
+      }
+
       let page = (params['page']=== undefined)?1:+params['page'];
       this.searchUtils.page = ( page <= 0 ) ? 1 : page;
       this.searchPage.fieldIds = this.fieldIds;
@@ -80,8 +88,8 @@
         this.csvParams ="&type=datasets&query="+this.resourcesQuery;
       }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     //this.searchPage.openLoading();
     this.disableForms = true;
     this.results = [];
@@ -94,15 +102,15 @@
             console.info("search Research Data total="+this.searchUtils.totalResults);
             this.results = data[1];
             this.searchPage.updateBaseUrlWithParameters();
-            var errorCodes:ErrorCodes = new ErrorCodes();
-             this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
-            if(this.searchUtils.status == errorCodes.DONE) {
+            if(this.searchUtils.status == this.errorCodes.DONE) {
               // Page out of limit!!!
               let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
               if(!(Number.isInteger(totalPages))) {
@@ -110,7 +118,7 @@
               }
               if(totalPages < page) {
                 this.searchUtils.totalResults = 0;
-                this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+                this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
               }
             }
         },
@@ -121,8 +129,16 @@
             // if( ){
             //   this.searchUtils.status = errorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
+
             //this.searchPage.closeLoading();
             this.disableForms = false;
         }
@@ -133,6 +149,8 @@
   }
 
   public queryChanged($event) {
+    this.loadPaging = true;
+    
     var parameters = $event.value;
     this.getResults(parameters, this.searchUtils.page,this.searchUtils.size);
     console.info("queryChanged: Execute search query "+parameters);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchProjects.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchProjects.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchProjects.component.ts	(revision 49174)
@@ -19,7 +19,9 @@
                  [(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap"   [(selectedFields)]="selectedFields"
                  (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="resources" simpleSearchLink="/search/find/projects"
-                 [disableForms]="disableForms">
+                 [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults">
     </advanced-search-page>
 
     `
@@ -26,13 +28,14 @@
  })
 
 export class AdvancedSearchProjectsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
 
   public searchUtils:SearchUtilsClass = new SearchUtilsClass();
+  public searchFields:SearchFields = new SearchFields();
 
-   public searchFields:SearchFields = new SearchFields();
-
   public fieldIds:  string[] = this.searchFields.PROJECT_ADVANCED_FIELDS;
   public fieldIdsMap = this.searchFields.PROJECT_FIELDS;
   public selectedFields:AdvancedField[] =  [];
@@ -41,12 +44,14 @@
   public resourcesQuery = "(oaftype exact project)";
   public csvParams: string;
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   constructor (private route: ActivatedRoute, private _searchProjectsService: SearchProjectsService ) {
 
     this.results =[];
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.baseUrl = OpenaireProperties.searchLinkToAdvancedProjects;
 
 
@@ -53,9 +58,14 @@
 
   }
   ngOnInit() {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
-   this.sub =  this.route.queryParams.subscribe(params => {
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
+    this.sub =  this.route.queryParams.subscribe(params => {
+      if(params['page'] && this.searchUtils.page != params['page']) {
+        this.loadPaging = false;
+        this.oldTotalResults = this.searchUtils.totalResults;
+      }
+
       let page = (params['page']=== undefined)?1:+params['page'];
       this.searchUtils.page = ( page <= 0 ) ? 1 : page;
       this.searchPage.fieldIds = this.fieldIds;
@@ -78,8 +88,8 @@
         this.csvParams ="&type=projects&query="+this.resourcesQuery;
       }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     //this.searchPage.openLoading();
     this.disableForms = true;
     this.results = [];
@@ -92,15 +102,15 @@
             console.info("Advanced Search for Projects total="+this.searchUtils.totalResults);
             this.results = data[1];
             this.searchPage.updateBaseUrlWithParameters();
-            var errorCodes:ErrorCodes = new ErrorCodes();
-             this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
-            if(this.searchUtils.status == errorCodes.DONE) {
+            if(this.searchUtils.status == this.errorCodes.DONE) {
               // Page out of limit!!!
               let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
               if(!(Number.isInteger(totalPages))) {
@@ -108,7 +118,7 @@
               }
               if(totalPages < page) {
                 this.searchUtils.totalResults = 0;
-                this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+                this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
               }
             }
         },
@@ -119,8 +129,16 @@
             // if( ){
             //   this.searchUtils.status = errorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
+
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
@@ -132,6 +150,8 @@
   }
 
   public queryChanged($event) {
+    this.loadPaging = true;
+    
     var parameters = $event.value;
     this.getResults(parameters, this.searchUtils.page,this.searchUtils.size);
     console.info("queryChanged: Execute search query "+parameters);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchPublications.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchPublications.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/advanced/advancedSearchPublications.component.ts	(revision 49174)
@@ -20,24 +20,30 @@
                  [(fieldIds)]="fieldIds" [(fieldIdsMap)]="fieldIdsMap"   [(selectedFields)]="selectedFields"
                  (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="resources" simpleSearchLink="/search/find/publications"
-                 [disableForms]="disableForms">
+                 [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults">
     </advanced-search-page>
     `
  })
 
 export class AdvancedSearchPublicationsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
+
   public searchUtils:SearchUtilsClass = new SearchUtilsClass();
-
   public searchFields:SearchFields = new SearchFields();
 
   public fieldIds:  string[] = this.searchFields.RESULT_ADVANCED_FIELDS;
-   public fieldIdsMap= this.searchFields.RESULT_FIELDS;
-   public selectedFields:AdvancedField[] =  [];
-   public resourcesQuery = "((oaftype exact result) and (resulttypeid exact publication))";
-   public csvParams: string;
-   public disableForms: boolean = false;
+  public fieldIdsMap= this.searchFields.RESULT_FIELDS;
+  public selectedFields:AdvancedField[] =  [];
+  public resourcesQuery = "((oaftype exact result) and (resulttypeid exact publication))";
+  public csvParams: string;
+  public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   @ViewChild (AdvancedSearchPageComponent) searchPage : AdvancedSearchPageComponent ;
 
@@ -45,8 +51,8 @@
   constructor (private route: ActivatedRoute, private _searchPublicationsService: SearchPublicationsService ) {
 
     this.results =[];
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.baseUrl = OpenaireProperties.searchLinkToAdvancedPublications;
 
 
@@ -53,9 +59,14 @@
 
   }
   ngOnInit() {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
-   this.sub =  this.route.queryParams.subscribe(params => {
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
+    this.sub =  this.route.queryParams.subscribe(params => {
+      if(params['page'] && this.searchUtils.page != params['page']) {
+        this.loadPaging = false;
+        this.oldTotalResults = this.searchUtils.totalResults;
+      }
+
       let page = (params['page']=== undefined)?1:+params['page'];
       this.searchUtils.page = ( page <= 0 ) ? 1 : page;
       this.searchPage.fieldIds = this.fieldIds;
@@ -64,8 +75,7 @@
       this.searchPage.fieldIdsMap = this.fieldIdsMap;
 
       this.searchPage.getSelectedFiltersFromUrl(params);
-       this.getResults(this.searchPage.createQueryParameters(),  this.searchUtils.page, this.searchUtils.size);
-
+      this.getResults(this.searchPage.createQueryParameters(),  this.searchUtils.page, this.searchUtils.size);
     });
   }
   ngOnDestroy() {
@@ -79,8 +89,8 @@
         this.csvParams ="&type=publications&query="+this.resourcesQuery;
       }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     //this.searchPage.openLoading();
     this.disableForms = true;
     this.results = [];
@@ -93,15 +103,15 @@
             console.info("searchPubl total="+this.searchUtils.totalResults);
             this.results = data[1];
             this.searchPage.updateBaseUrlWithParameters();
-            var errorCodes:ErrorCodes = new ErrorCodes();
-             this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
-            if(this.searchUtils.status == errorCodes.DONE) {
+            if(this.searchUtils.status == this.errorCodes.DONE) {
               // Page out of limit!!!
               let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
               if(!(Number.isInteger(totalPages))) {
@@ -109,7 +119,7 @@
               }
               if(totalPages < page) {
                 this.searchUtils.totalResults = 0;
-                this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+                this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
               }
             }
         },
@@ -120,8 +130,16 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.NOT_AVAILABLE;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
+
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
@@ -130,6 +148,8 @@
   }
 
   public queryChanged($event) {
+    this.loadPaging = true;
+
     var parameters = $event.value;
     this.getResults(parameters, this.searchUtils.page,this.searchUtils.size);
     console.info("queryChanged: Execute search query "+parameters);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/browseEntities.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/browseEntities.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/browseEntities.module.ts	(revision 49174)
@@ -8,10 +8,11 @@
 import {BrowseEntitiesComponent} from './browseEntities.component';
 import {BrowseStatisticComponent} from './browseStatistic.component';
 
+import {ErrorMessagesModule} from '../../utils/errorMessages.module';
 
 @NgModule({
   imports: [
-    CommonModule, FormsModule,
+    CommonModule, FormsModule, ErrorMessagesModule,
     RefineFieldResultsServiceModule, RouterModule
   ],
   declarations: [
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/browseEntities.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/browseEntities.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/browseEntities.component.ts	(revision 49174)
@@ -14,10 +14,12 @@
     selector: 'browse-entities',
     template: `
 <div>
-  <div *ngIf="status == errorCodes.LOADING" class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+  <!--div *ngIf="status == errorCodes.LOADING" class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
   <div *ngIf="status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No Results found</div>
   <div *ngIf="status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
-  <div *ngIf="status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
+  <div *ngIf="status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service temprorarily unavailable. Please try again later.</div>
+  <div *ngIf="status == errorCodes.NOT_FOUND" class="uk-alert uk-alert-danger" role="alert">No filters found</div-->
+  <errorMessages [status]="[status]" [type]="'results'"></errorMessages>
 
   <div class ="uk-grid">
     <div *ngFor= "let filter of filters" class = "uk-margin-bottom uk-width-1-4@l uk-width-1-3@m  uk-width-1-2@s">
@@ -81,7 +83,14 @@
           // if( ){
           //   this.searchUtils.status = ErrorCodes.ERROR;
           // }
-          this.status = this.errorCodes.ERROR;
+          //this.status = this.errorCodes.ERROR;
+          if(err.status == '404') {
+            this.status = this.errorCodes.NOT_FOUND;
+          } else if(err.status == '500') {
+            this.status = this.errorCodes.ERROR;
+          } else {
+            this.status = this.errorCodes.NOT_AVAILABLE;
+          }
       }
   );
 }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPage.component.html
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPage.component.html	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPage.component.html	(revision 49174)
@@ -1,66 +1,66 @@
 <div id="tm-main" class=" uk-section  uk-margin-small-top tm-middle"   >
   <div uk-grid uk-grid>
-   <div class="tm-main uk-width-1-1@s uk-width-1-1@m  uk-width-1-1@l uk-row-first ">
-    <div class="">
+    <div class="tm-main uk-width-1-1@s uk-width-1-1@m  uk-width-1-1@l uk-row-first ">
+      <div class="">
 
-            <div   [class]="'uk-background-norepeat uk-background-cover uk-section uk-flex uk-flex-middle uk- light '+searchFormClass" >
-              <div   class="uk-width-1-1">
-                <div   class="uk-width-1-1">
-                  <search-form [isDisabled]="disableForms" [(keyword)]="searchUtils.keyword" (keywordChange)="keywordChanged($event)" [placeholderText]="formPlaceholderText"></search-form>
-                </div>
-                <div   class="uk-width-1-1  ">
-                <!--link to advanced search -->
-                <a *ngIf = "advancedSearchLink && advancedSearchLink.length > 0" routerLinkActive="router-link-active" [class]="(disableForms)?'uk-float-right   uk-disabled uk-link-muted uk-light ':'uk-float-right  uk-light'" [routerLink]=advancedSearchLink >More search options <span class="uk-icon">
-                    <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="chevron-right" ratio="1"><polyline fill="none" stroke="#000" stroke-width="1.03" points="7 4 13 10 7 16"></polyline></svg>
-                    </span>
-                </a>
-                <div *ngIf="isFiltered()" class = "uk-container uk-width-1-2@m uk-width-1-2@s uk-align-center uk-text-center uk-text-small">
-                  <span *ngIf = "searchUtils.keyword.length > 0">Keywords: <span [innerHtml]="searchUtils.keyword"></span><a (click) = "clearKeywords() " [class]="(disableForms)?'uk-icon-button uk-disabled':'uk-icon-button'"><span class=" clickable " aria-hidden="true"><span class="uk-icon">
+        <div   [class]="'uk-background-norepeat uk-background-cover uk-section uk-flex uk-flex-middle uk- light '+searchFormClass" >
+          <div   class="uk-width-1-1">
+            <div   class="uk-width-1-1">
+              <search-form [isDisabled]="disableForms" [(keyword)]="searchUtils.keyword" (keywordChange)="keywordChanged($event)" [placeholderText]="formPlaceholderText"></search-form>
+            </div>
+            <div   class="uk-width-1-1  ">
+              <!--link to advanced search -->
+              <a *ngIf = "advancedSearchLink && advancedSearchLink.length > 0" routerLinkActive="router-link-active" [class]="(disableForms)?'uk-float-right   uk-disabled uk-link-muted uk-light ':'uk-float-right  uk-light'" [routerLink]=advancedSearchLink >More search options <span class="uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="chevron-right" ratio="1"><polyline fill="none" stroke="#000" stroke-width="1.03" points="7 4 13 10 7 16"></polyline></svg>
+                  </span>
+              </a>
+              <div *ngIf="isFiltered()" class = "uk-container uk-width-1-2@m uk-width-1-2@s uk-align-center uk-text-center uk-text-small">
+                <span *ngIf = "searchUtils.keyword.length > 0">Keywords: <span [innerHtml]="searchUtils.keyword"></span><a (click) = "clearKeywords() " [class]="(disableForms)?'uk-icon-button uk-disabled':'uk-icon-button'"><span class=" clickable " aria-hidden="true"><span class="uk-icon">
+                  <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
+                  </span></span></a>
+                </span>
+                <span *ngFor="let filter of filters " >
+                  <span *ngIf = "filter.countSelectedValues > 0"> {{filter.title}}:
+                    <span *ngFor="let value of getSelectedValues(filter); let i = index;  let end = last; " ><span [innerHtml]="(value.name.length > 25)?value.name.substring(0,25)+'...':value.name" title="value.name"></span><a (click) = "removeFilter(value, filter) " [class]="(disableForms)?'uk-icon-button uk-disabled':'uk-icon-button'"><span class=" clickable" aria-hidden="true"><span class="uk-icon">
                       <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
-                        </span></span></a>
-                  </span>
-                  <span *ngFor="let filter of filters " >
-                    <span *ngIf = "filter.countSelectedValues > 0"> {{filter.title}}:
-                      <span *ngFor="let value of getSelectedValues(filter); let i = index;  let end = last; " ><span [innerHtml]="(value.name.length > 25)?value.name.substring(0,25)+'...':value.name" title="value.name"></span><a (click) = "removeFilter(value, filter) " [class]="(disableForms)?'uk-icon-button uk-disabled':'uk-icon-button'"><span class=" clickable" aria-hidden="true"><span class="uk-icon">
-                          <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="close" ratio="1"><path fill="none" stroke="#000" stroke-width="1.06" d="M16,16 L4,4"></path><path fill="none" stroke="#000" stroke-width="1.06" d="M16,4 L4,16"></path></svg>
-                          </span></span></a>
-                          <span *ngIf="!end">, </span>
-                      </span>
+                      </span></span></a>
+                      <span *ngIf="!end">, </span>
                     </span>
                   </span>
+                </span>
 
-                  <a (click)="clearFilters()" [class]="(disableForms)?'uk-disabled uk-link-muted':''">
-                   Clear All
-                  </a>
-                </div>
-                <div *ngIf= "showUnknownFilters"  class = " uk-text-center ">
+                <a (click)="clearFilters()" [class]="(disableForms)?'uk-disabled uk-link-muted':''">
+                 Clear All
+                </a>
+              </div>
+              <div *ngIf= "showUnknownFilters"  class = " uk-text-center ">
                 <a (click) = "clearFilters() " >Try new Query</a>
-                </div>
-                </div>
-
+              </div>
             </div>
-      </div>
-    <div  class="uk-container">
-    <helper position="top"></helper>
-      <div  [class]="(showRefine)?'uk-width-3-5@m  uk-width-3-5@l  uk-width-1-1@s uk-align-center uk-margin-remove-bottom':'uk-width-1-1'">
-          <div  *ngIf="showRefine" class="uk-offcanvas-content uk-hidden@m">
 
-                <a href="#offcanvas-usage" uk-toggle><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><rect x="6" y="4" width="12" height="1"></rect><rect x="6" y="9" width="12" height="1"></rect><rect x="6" y="14" width="12" height="1"></rect><rect x="2" y="4" width="2" height="1"></rect><rect x="2" y="9" width="2" height="1"></rect><rect x="2" y="14" width="2" height="1"></rect></svg></a>
+          </div>
+        </div>
+        <div  class="uk-container">
+          <helper position="top"></helper>
+          <div  [class]="(showRefine)?'uk-width-3-5@m  uk-width-3-5@l  uk-width-1-1@s uk-align-center uk-margin-remove-bottom':'uk-width-1-1'">
+            <div  *ngIf="showRefine" class="uk-offcanvas-content uk-hidden@m">
 
-                <div id="offcanvas-usage" uk-offcanvas>
-                    <div class="uk-offcanvas-bar">
-                        <button class="uk-offcanvas-close" type="button" uk-close></button>
-                        <div class="uk-text-large">Filter By:</div>
-                        <search-filter  *ngFor="let filter of filters "  [addShowMore]=false [isDisabled]="disableForms" [filter]="filter"  [showResultCount]=showResultCount (change)="filterChanged($event)" (toggleModal)="toggleModal($event)"></search-filter>
-                    </div>
+              <a href="#offcanvas-usage" uk-toggle><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><rect x="6" y="4" width="12" height="1"></rect><rect x="6" y="9" width="12" height="1"></rect><rect x="6" y="14" width="12" height="1"></rect><rect x="2" y="4" width="2" height="1"></rect><rect x="2" y="9" width="2" height="1"></rect><rect x="2" y="14" width="2" height="1"></rect></svg></a>
+
+              <div id="offcanvas-usage" uk-offcanvas>
+                <div class="uk-offcanvas-bar">
+                  <button class="uk-offcanvas-close" type="button" uk-close></button>
+                  <div class="uk-text-large">Filter By:</div>
+                  <search-filter  *ngFor="let filter of filters "  [addShowMore]=false [isDisabled]="disableForms" [filter]="filter"  [showResultCount]=showResultCount (change)="filterChanged($event)" (toggleModal)="toggleModal($event)"></search-filter>
                 </div>
+              </div>
 
-        </div>
+            </div>
 
-        <search-paging [type]="type" [(searchUtils)] = "searchUtils"  [(results)] = "results"  [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
+            <search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils"  [(results)] = "results"  [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
 
-        </div>
-        <div  class="uk-grid uk-width-1-1 uk-margin">
+          </div>
+          <div  class="uk-grid uk-width-1-1 uk-margin">
             <div  *ngIf="showRefine" class=" search-filters uk-width-1-5@l  uk-width-1-5@m  uk-width-1-1@s uk-visible@m">
                <helper position="left"></helper>
                <search-filter  *ngFor="let filter of filters " [isDisabled]="disableForms" [filter]="filter"  [showResultCount]=showResultCount (change)="filterChanged($event)" (toggleModal)="toggleModal($event)"></search-filter>
@@ -78,13 +78,13 @@
 
             </div>
 
-            <div  *ngIf="tableViewLink || searchUtils.totalResults <=10000"  class=" search-filters uk-width-1-5@l  uk-width-1-5@m  uk-width-1-1@s uk-visible@m">
+            <div  *ngIf="tableViewLink || searchUtils.totalResults <=10000"  class="uk-width-1-5@l  uk-width-1-5@m  uk-width-1-1@s uk-visible@m">
               <span *ngIf="tableViewLink" class="uk-margin-medium-right">
-                          <a routerLinkActive="router-link-active" [class]="(disableForms)?'uk-disabled uk-link-muted':''" [routerLink]=tableViewLink >
-                            <span class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><rect x="2" y="2" width="3" height="3"></rect><rect x="8" y="2" width="3" height="3"></rect><rect x="14" y="2" width="3" height="3"></rect><rect x="2" y="8" width="3" height="3"></rect><rect x="8" y="8" width="3" height="3"></rect><rect x="14" y="8" width="3" height="3"></rect><rect x="2" y="14" width="3" height="3"></rect><rect x="8" y="14" width="3" height="3"></rect><rect x="14" y="14" width="3" height="3"></rect></svg></span>
-                          </a>
+                <a routerLinkActive="router-link-active" [class]="(disableForms)?'uk-disabled uk-link-muted':''" [routerLink]=tableViewLink >
+                  <span class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><rect x="2" y="2" width="3" height="3"></rect><rect x="8" y="2" width="3" height="3"></rect><rect x="14" y="2" width="3" height="3"></rect><rect x="2" y="8" width="3" height="3"></rect><rect x="8" y="8" width="3" height="3"></rect><rect x="14" y="8" width="3" height="3"></rect><rect x="2" y="14" width="3" height="3"></rect><rect x="8" y="14" width="3" height="3"></rect><rect x="14" y="14" width="3" height="3"></rect></svg></span>
+                </a>
 
-                          <span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="table" ratio="1"><rect x="1" y="3" width="18" height="1"></rect><rect x="1" y="7" width="18" height="1"></rect><rect x="1" y="11" width="18" height="1"></rect><rect x="1" y="15" width="18" height="1"></rect></svg></span>
+                <span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="table" ratio="1"><rect x="1" y="3" width="18" height="1"></rect><rect x="1" y="7" width="18" height="1"></rect><rect x="1" y="11" width="18" height="1"></rect><rect x="1" y="15" width="18" height="1"></rect></svg></span>
               </span>
               <search-download [type]="csvPath" [csvParams]="csvParams" [totalResults]="searchUtils.totalResults"></search-download>
               <helper position="right"></helper>
@@ -91,17 +91,17 @@
 
             </div>
             <div  *ngIf="!(tableViewLink || searchUtils.totalResults <=10000)"  class=" search-filters uk-width-1-5@l  uk-width-1-5@m  uk-width-1-1@s uk-visible@m">
-                <helper position="right"></helper>
+              <helper position="right"></helper>
             </div>
-            <div [class]="(showRefine)?'uk-width-3-5@m  uk-width-3-5@l  uk-width-1-1@s uk-align-center uk-margin-remove-bottom':'uk-width-1-1'">
-                <search-paging [type]="type" [(searchUtils)] = "searchUtils"  [(results)] = "results"  [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
-            </div>
-            <div class="uk-width-1-1">
-              <helper position="bottom"></helper>
-            </div>
-
           </div>
+          <div [class]="(showRefine)?'uk-width-3-5@m  uk-width-3-5@l  uk-width-1-1@s uk-align-center uk-margin-remove-bottom':'uk-width-1-1'">
+            <search-paging [loadPaging]="loadPaging" [type]="type" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils"  [(results)] = "results"  [(baseUrl)] = "baseUrl" [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues" ></search-paging>
+          </div>
+          <div class="uk-width-1-1">
+            <helper position="bottom"></helper>
+          </div>
         </div>
       </div>
     </div>
   </div>
+</div>
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchResult.component.html
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchResult.component.html	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchResult.component.html	(revision 49174)
@@ -1,10 +1,11 @@
 
  <ul [class]="'uk-list uk-list-divider  uk-margin '+custom_class">
-  <div *ngIf="status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No Results found</div>
+  <!--div *ngIf="status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No Results found</div>
   <div *ngIf="status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
   <div *ngIf="status == errorCodes.OUT_OF_BOUND" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">Requested page out of bounds</div>
   <div *ngIf="status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-  <div *ngIf="status == errorCodes.LOADING && showLoading"   class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+  <div *ngIf="status == errorCodes.LOADING && showLoading"   class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+  <errorMessages [status]="[status]" [type]="'results'"></errorMessages>
 
     <li *ngFor="let result of results" class="uk-animation-fade">
         <h4 class = "{{result.title.accessMode}} {{result.title.sc39}}" [title] = result.title.accessMode >
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPageTableView.component.html
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPageTableView.component.html	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPageTableView.component.html	(revision 49174)
@@ -32,12 +32,14 @@
      </div>
    </div>
      <div  class="uk-container">
-       <div *ngIf="searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade uk-margin-top" role="alert">No Results found</div>
+       <!--div *ngIf="searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade uk-margin-top" role="alert">No Results found</div>
        <div *ngIf="searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade uk-margin-top" role="alert">An Error Occured</div>
        <div *ngIf="searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade uk-margin-top" role="alert">Service not available</div>
        <div *ngIf="searchUtils.status == errorCodes.LOADING" class="uk-alert uk-alert-primary uk-animation-fade uk-margin-top" role="alert"
          class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading">
-       </div>
+       </div-->
+       <errorMessages [status]="[searchUtils.status]" [type]="'results'"></errorMessages>
+
        <div  class="uk-grid uk-width-1-1 uk-margin">
          <div class="uk-width-1-1">
            <helper position="top"></helper>
@@ -55,18 +57,18 @@
              </div>
 
        </div>
-         <div *ngIf="searchUtils.totalResults > 0" class=" search-filters uk-width-1-4@l  uk-width-1-4@m  uk-width-1-1@s  uk-margin-large-top uk-visible@m">
+         <div *ngIf="searchUtils.totalResults > 0" class=" search-filters uk-width-1-5@l  uk-width-1-5@m  uk-width-1-1@s  uk-margin-large-top uk-visible@m">
             <helper position="left"></helper>
             <search-filter  *ngFor="let filter of filters " [isDisabled]="disableForms" [filter]="filter"  [showResultCount]=showResultCount (change)="filterChanged($event)" (toggleModal)="toggleModal($event)"></search-filter>
          </div>
 
-         <div class="uk-width-3-4@m  uk-width-3-4@l  uk-width-1-1@s uk-first-column" >
+         <div class="uk-width-expand@m uk-width-1-1@s uk-first-column" >
            <div class="uk-overflow-container custom-dataTable-content">
              <table  class="uk-table uk-table-striped divider-table"  #mf="mfDataTable" [mfRowsOnPage]="rowsOnPage"
                      [mfData]="results | contentProvidersDatatable : [searchUtils, filters, triggerPipe]">
 
                <thead *ngIf="searchUtils.totalResults > 0">
-                 <tr><td colspan="5" class="uk-padding-remove-bottom uk-padding-remove-right">
+                 <tr><td colspan="5" class="uk-padding-remove">
                    <span class="uk-h6">
                      {{searchUtils.totalResults}} content providers, page {{searchUtils.page}} of {{(totalPages())}}
                    </span>
@@ -75,17 +77,7 @@
                  <!--tr><td colspan="5" class="uk-padding-remove">
                    <search-download [type]="csvPath" [csvParams]="csvParams" [totalResults]="searchUtils.totalResults" (downloadClick)="downloadClicked($event)"></search-download>
                  </td></tr-->
-                 <tr *ngIf="searchViewLink"><td colspan="5" class="uk-padding-remove-top uk-padding-remove-right uk-text-right">
-                   <p>
 
-                       <span class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><rect x="2" y="2" width="3" height="3"></rect><rect x="8" y="2" width="3" height="3"></rect><rect x="14" y="2" width="3" height="3"></rect><rect x="2" y="8" width="3" height="3"></rect><rect x="8" y="8" width="3" height="3"></rect><rect x="14" y="8" width="3" height="3"></rect><rect x="2" y="14" width="3" height="3"></rect><rect x="8" y="14" width="3" height="3"></rect><rect x="14" y="14" width="3" height="3"></rect></svg></span>
-
-                     <a routerLinkActive="router-link-active" [class]="(disableForms)?'uk-disabled uk-link-muted':''" [routerLink]=searchViewLink >
-                       <span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="table" ratio="1"><rect x="1" y="3" width="18" height="1"></rect><rect x="1" y="7" width="18" height="1"></rect><rect x="1" y="11" width="18" height="1"></rect><rect x="1" y="15" width="18" height="1"></rect></svg></span>
-                     </a>
-                   </p>
-                 </td></tr>
-
                   <tr>
                      <!-- Name	Type	Country	Institution	Compatibility -->
                      <th class="uk-text-left"><mfDefaultSorter by="title.name">Name</mfDefaultSorter>
@@ -155,9 +147,17 @@
                </tbody>
              </table>
            </div>
+       </div>
+       <div *ngIf="searchViewLink" class="uk-margin-large-top uk-padding-remove-top uk-padding-remove-right uk-text-right">
+         <p>
 
+             <span class="uk-margin-small-right uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" ratio="1"><rect x="2" y="2" width="3" height="3"></rect><rect x="8" y="2" width="3" height="3"></rect><rect x="14" y="2" width="3" height="3"></rect><rect x="2" y="8" width="3" height="3"></rect><rect x="8" y="8" width="3" height="3"></rect><rect x="14" y="8" width="3" height="3"></rect><rect x="2" y="14" width="3" height="3"></rect><rect x="8" y="14" width="3" height="3"></rect><rect x="14" y="14" width="3" height="3"></rect></svg></span>
 
-       </div>
+           <a routerLinkActive="router-link-active" [class]="(disableForms)?'uk-disabled uk-link-muted':''" [routerLink]=searchViewLink >
+             <span class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="table" ratio="1"><rect x="1" y="3" width="18" height="1"></rect><rect x="1" y="7" width="18" height="1"></rect><rect x="1" y="11" width="18" height="1"></rect><rect x="1" y="15" width="18" height="1"></rect></svg></span>
+           </a>
+         </p>
+      </div>
      </div>
      <helper position="bottom"></helper>
    </div>
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPaging.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPaging.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPaging.component.ts	(revision 49174)
@@ -1,16 +1,23 @@
 import {Component, Input, Output, EventEmitter} from '@angular/core';
 import {Observable}       from 'rxjs/Observable';
+import {ErrorCodes} from '../../utils/properties/openaireProperties';
 
 @Component({
     selector: 'search-paging',
     template: `
-    <div class= "searchPaging uk-panel uk-margin-top uk-grid">
-      <div class="uk-h6 uk-margin-remove uk-width-1-1@s uk-width-1-2@m" *ngIf="results  && searchUtils.totalResults > 0">
-      {{searchUtils.totalResults}} {{type}}, page {{searchUtils.page}} of {{(totalPages())}}
+    <div class= "searchPaging uk-panel uk-margin-top uk-grid uk-margin-bottom uk-padding uk-padding-remove-vertical uk-padding-remove-left">
+      <div class="uk-h6 uk-width-1-1@s uk-width-1-2@m" *ngIf="results && searchUtils.totalResults > 0">
+        {{searchUtils.totalResults}} {{type}}, page {{searchUtils.page}} of {{(totalPages(searchUtils.totalResults))}}
       </div>
-      <div class="uk-width-1-1@s uk-width-1-2@m  " *ngIf="results  && searchUtils.totalResults > searchUtils.size">
-            <paging [currentPage]="searchUtils.page" [totalResults]="searchUtils.totalResults"  [baseUrl]="baseUrl" [size]="searchUtils.size"  [parameterNames] = "parameterNames" [parameterValues] = "parameterValues" > </paging>
+      <div class="uk-h6 uk-width-1-1@s uk-width-1-2@m" *ngIf="!loadPaging && oldTotalResults > 0 && searchUtils.status == errorCodes.LOADING">
+        {{oldTotalResults}} {{type}}, page {{searchUtils.page}} of {{(totalPages(oldTotalResults))}}
       </div>
+      <div class="uk-width-1-1@s uk-width-1-2@m" *ngIf="results && searchUtils.totalResults > searchUtils.size">
+        <paging class="uk-float-right" [currentPage]="searchUtils.page" [totalResults]="searchUtils.totalResults"  [baseUrl]="baseUrl" [size]="searchUtils.size"  [parameterNames] = "parameterNames" [parameterValues] = "parameterValues" > </paging>
+      </div>
+      <div class="uk-width-1-1@s uk-width-1-2@m" *ngIf="!loadPaging && oldTotalResults > searchUtils.size && searchUtils.status == errorCodes.LOADING">
+        <paging class="uk-float-right" [currentPage]="searchUtils.page" [totalResults]="oldTotalResults"  [baseUrl]="baseUrl" [size]="searchUtils.size"  [parameterNames] = "parameterNames" [parameterValues] = "parameterValues" > </paging>
+      </div>
     </div>
     `
 })
@@ -23,16 +30,24 @@
     @Input() parameterNames:string[];
     @Input() parameterValues:string[];
 
+    @Input() loadPaging: boolean = true;
+    @Input() oldTotalResults: number = 0;
+
+    public totalResults: number = 0;
+    public errorCodes:ErrorCodes = new ErrorCodes();
+
     // @Input() totalResults:number = 0;
-    constructor () {
-     }
+    constructor () {}
 
     ngOnInit() {
-
+      // this.totalResults = this.searchUtils.totalResults;
+      // if(!this.loadPaging && this.totalResults == 0) {
+      //   this.totalResults = this.oldTotalResults;
+      // }
     }
 
-    totalPages(): number {
-        let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
+    totalPages(totalResults: number): number {
+        let totalPages:any = totalResults/(this.searchUtils.size);
         if(!(Number.isInteger(totalPages))) {
             totalPages = (parseInt(totalPages, 10) + 1);
         }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchDownload.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchDownload.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchDownload.component.ts	(revision 49174)
@@ -9,7 +9,7 @@
 @Component({
     selector: 'search-download',
     template: `
-        <span class="uk-margin-large-right" *ngIf="totalResults <= 10000">
+        <span class="uk-margin-large-right" *ngIf="totalResults > 0 && totalResults <= 10000">
             <span class="clickable" (click)="downloadfile(downloadURLAPI+type+'?format=csv&page=0&size='+totalResults+csvParams,type+'-report-'+totalResults)">
                 <span aria-hidden="true" class="glyphicon glyphicon-download"></span>
                 <span  class="uk-icon"><svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" icon="download" ratio="1"><polyline fill="none" stroke="#000" points="14,10 9.5,14.5 5,10"></polyline><rect x="3" y="17" width="13" height="1"></rect><line fill="none" stroke="#000" x1="9.5" y1="13.91" x2="9.5" y2="3"></line></svg></span> (CSV)
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPage.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPage.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPage.component.ts	(revision 49174)
@@ -40,6 +40,8 @@
   @Input() advancedSearchLink: string = "";
   @Input() tableViewLink: string;
   @Input() disableForms: boolean = false;
+  @Input() loadPaging: boolean = true;
+  @Input() oldTotalResults: number = 0;
   @Input() tableView: boolean = false;
   @Input() searchFormClass: string = "searchForm";
   @ViewChild (ModalLoading) loading : ModalLoading ;
@@ -118,12 +120,15 @@
   public getQueryParametersFromUrl(params){
     // var parameters = "";
     var allFqs = "";
+
     this.queryParameters = new Map<string,string>();
+    
     for(var i=0; i< this.refineFields.length ; i++){
          var filterId =  this.refineFields[i];
 
           if(params[filterId] != undefined) {
              this.queryParameters[filterId]=StringUtils.URIDecode(params[filterId]);
+
              let values = (StringUtils.URIDecode(this.queryParameters[filterId])).split(/,(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,-1);
              var countvalues = 0;
              var fq = "";
@@ -138,8 +143,6 @@
              }
              allFqs += fq;
           }
-
-
    }
    var keyword = params['keyword'];
    var doiQuery = "";
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.html
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.html	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.html	(revision 49174)
@@ -21,7 +21,7 @@
                 <div class="uk-width-1-1">
                   <helper position="top"></helper>
                 </div>
-                    <search-paging [type]="type" [(searchUtils)] = "searchUtils"  [(results)] = "results" [(baseUrl)] = "searchUtils.baseUrl"  [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues"   ></search-paging>
+                    <search-paging [type]="type" [loadPaging]="loadPaging" [oldTotalResults]="oldTotalResults" [(searchUtils)] = "searchUtils"  [(results)] = "results" [(baseUrl)] = "searchUtils.baseUrl"  [(parameterNames)] = "parameterNames" [(parameterValues)] = "parameterValues"   ></search-paging>
                     <search-download [type]="csvPath" [csvParams]="csvParams" [totalResults]="searchUtils.totalResults" ></search-download>
 
                 <div class="uk-width-1-1 uk-grid helper-grid" >
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchResults.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchResults.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchResults.module.ts	(revision 49174)
@@ -1,15 +1,17 @@
-import { NgModule}            from '@angular/core';
-import { CommonModule }        from '@angular/common';
-import { FormsModule }         from '@angular/forms';
+import { NgModule}              from '@angular/core';
+import { CommonModule }         from '@angular/common';
+import { FormsModule }          from '@angular/forms';
+import { RouterModule }         from '@angular/router';
 
-import {SearchResult}     from '../../utils/entities/searchResult';
-import {SearchResultComponent} from './searchResult.component';
-import { RouterModule } from '@angular/router';
+import {ErrorMessagesModule}    from '../../utils/errorMessages.module';
 
+import {SearchResult}           from '../../utils/entities/searchResult';
+import {SearchResultComponent}  from './searchResult.component';
+
 @NgModule({
   imports: [
     CommonModule, FormsModule,
-    RouterModule
+    RouterModule, ErrorMessagesModule
    ],
   declarations: [
     SearchResultComponent,
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPageTableView.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPageTableView.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/searchPageTableView.module.ts	(revision 49174)
@@ -23,11 +23,13 @@
 import {PreviousRouteRecorder} from '../../utils/piwik/previousRouteRecorder.guard';
 
 import {HelperModule} from '../../utils/helper/helper.module';
+import {ErrorMessagesModule} from '../../utils/errorMessages.module';
 
 @NgModule({
   imports: [
     CommonModule, FormsModule,RouterModule,  SearchFormModule, SearchResultsModule,  LoadingModalModule,
-    ReportsServiceModule, SearchPagingModule, SearchDownloadModule, ModalModule, PagingModule, DataTableModule, SearchFilterModule, PiwikServiceModule, HelperModule
+    ReportsServiceModule, SearchPagingModule, SearchDownloadModule, ModalModule, PagingModule,
+    DataTableModule, SearchFilterModule, PiwikServiceModule, HelperModule, ErrorMessagesModule
   ],
   declarations: [
     SearchPageTableViewComponent//,
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/searchUtils/advancedSearchPage.component.ts	(revision 49174)
@@ -14,7 +14,7 @@
 
 @Component({
     selector: 'advanced-search-page',
-    templateUrl: 'advancedSearchPage.component.html' 
+    templateUrl: 'advancedSearchPage.component.html'
 })
 export class AdvancedSearchPageComponent {
   @Input() pageTitle = "";
@@ -31,6 +31,9 @@
   @Input() csvPath: string;
   @Input() simpleSearchLink: string = "";
   @Input() disableForms:boolean = false;
+  @Input() loadPaging: boolean = true;
+  @Input() oldTotalResults: number = 0;
+
   piwiksub: any;
   public parameterNames:string[] =[];
   public parameterValues:string[] =[];
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/journals.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/journals.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/journals.component.ts	(revision 49174)
@@ -29,6 +29,8 @@
 
 })
 export class SearchJournalsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public baseUrl:string;
@@ -54,8 +56,8 @@
   @ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
 
   constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchDataprovidersService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.baseUrl = OpenaireProperties.getLinkToSearchJournals();
     for(var i = 0; i < this._prefixQueryFields.length; i++ ){
       for(var j =0; j < this._prefixQueryFields[i].values.length; j++){
@@ -90,8 +92,8 @@
     private _getResults(parameters:string,refine:boolean, page: number, size: number){
         this.csvParams = parameters+this.resourcesQuery+"&type=datasources";
 
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
       //this.searchPage.openLoading();
       this.disableForms = true;
       this.results = [];
@@ -104,10 +106,10 @@
               this.results = data[1];
               this.searchPage.checkSelectedFilters(this.filters);
               this.searchPage.updateBaseUrlWithParameters(this.filters);
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
               //this.searchPage.closeLoading();
               this.disableForms = false;
@@ -119,8 +121,16 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
+
               //this.searchPage.closeLoading();
               this.disableForms = false;
 
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/journalsTable.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/journalsTable.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/journalsTable.component.ts	(revision 49174)
@@ -27,6 +27,8 @@
 
 })
 export class SearchJournalsTableComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public baseUrl:string;
@@ -48,8 +50,8 @@
   @ViewChild (SearchPageTableViewComponent) searchPage : SearchPageTableViewComponent ;
 
   constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchDataprovidersService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.baseUrl = OpenaireProperties.getLinkToSearchJournalsTable();
   }
 
@@ -74,8 +76,8 @@
     private _getResults(){
         //this.csvParams = this.resourcesQuery+"&type=datasources";
 
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
       this.disableForms = true;
       this.results = [];
       this.searchUtils.totalResults = 0;
@@ -93,10 +95,10 @@
 
                         this.searchPage.checkSelectedFilters(this.filters);
 
-                        var errorCodes:ErrorCodes = new ErrorCodes();
-                        this.searchUtils.status = errorCodes.DONE;
+                        //var errorCodes:ErrorCodes = new ErrorCodes();
+                        this.searchUtils.status = this.errorCodes.DONE;
                         if(this.searchUtils.totalResults == 0 ){
-                          this.searchUtils.status = errorCodes.NONE;
+                          this.searchUtils.status = this.errorCodes.NONE;
                         }
                         this.disableForms = false;
                     },
@@ -106,8 +108,16 @@
                         // if( ){
                         //   this.searchUtils.status = ErrorCodes.ERROR;
                         // }
-                        var errorCodes:ErrorCodes = new ErrorCodes();
-                        this.searchUtils.status = errorCodes.ERROR;
+                        //var errorCodes:ErrorCodes = new ErrorCodes();
+                        //this.searchUtils.status = errorCodes.ERROR;
+                        if(err.status == '404') {
+                          this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                        } else if(err.status == '500') {
+                          this.searchUtils.status = this.errorCodes.ERROR;
+                        } else {
+                          this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                        }
+
                         this.disableForms = false;
 
                     }
@@ -115,8 +125,8 @@
               } else {
                 this.searchPage.checkSelectedFilters(this.filters);
 
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.NONE;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                this.searchUtils.status = this.errorCodes.NONE;
                 this.disableForms = false;
               }
           },
@@ -126,8 +136,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
 
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/compatibleDataProviders.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/compatibleDataProviders.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/compatibleDataProviders.component.ts	(revision 49174)
@@ -31,6 +31,7 @@
 
 })
 export class SearchCompatibleDataprovidersComponent {
+  private errorCodes: ErrorCodes;
   public results =[];
   public filters =[];
   public baseUrl:string;
@@ -55,8 +56,8 @@
   @ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
 
   constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchDataprovidersService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.baseUrl = OpenaireProperties.getLinkToSearchCompatibleDataProviders();
     for(var i = 0; i < this._prefixQueryFields.length; i++ ){
       for(var j =0; j < this._prefixQueryFields[i].values.length; j++){
@@ -91,8 +92,8 @@
     private _getResults(parameters:string,refine:boolean, page: number, size: number){
         this.csvParams = parameters+this.resourcesQuery+"&type=datasources";
 
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
       //this.searchPage.openLoading();
       this.disableForms = true;
       this.results = [];
@@ -105,10 +106,10 @@
               this.results = data[1];
               this.searchPage.checkSelectedFilters(this.filters);
               this.searchPage.updateBaseUrlWithParameters(this.filters);
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
               //this.searchPage.closeLoading();
               this.disableForms = false;
@@ -120,8 +121,16 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
+
               //this.searchPage.closeLoading();
               this.disableForms = false;
 
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/entityRegistries.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/entityRegistries.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/entityRegistries.component.ts	(revision 49174)
@@ -30,6 +30,8 @@
 
 })
 export class SearchEntityRegistriesComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public baseUrl:string;
@@ -55,8 +57,8 @@
   public csvParams: string;
 
   constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchDataprovidersService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.baseUrl = OpenaireProperties.getLinkToSearchEntityRegistries();
     for(var i = 0; i < this._prefixQueryFields.length; i++ ){
       for(var j =0; j < this._prefixQueryFields[i].values.length; j++){
@@ -91,8 +93,8 @@
     private _getResults(parameters:string,refine:boolean, page: number, size: number){
         this.csvParams = parameters+this.resourcesQuery+"&type=datasources";
 
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
       //this.searchPage.openLoading();
       this.disableForms = true;
       this.results = [];
@@ -105,10 +107,10 @@
               this.results = data[1];
               this.searchPage.checkSelectedFilters(this.filters);
               this.searchPage.updateBaseUrlWithParameters(this.filters);
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
               //this.searchPage.closeLoading();
               this.disableForms = false;
@@ -120,8 +122,16 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
+
               //this.searchPage.closeLoading();
               this.disableForms = false;
 
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/compatibleDataProvidersTable.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/compatibleDataProvidersTable.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/compatibleDataProvidersTable.component.ts	(revision 49174)
@@ -27,6 +27,8 @@
 
 })
 export class SearchCompatibleDataprovidersTableComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public baseUrl:string;
@@ -48,8 +50,8 @@
   @ViewChild (SearchPageTableViewComponent) searchPage : SearchPageTableViewComponent ;
 
   constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchDataprovidersService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.baseUrl = OpenaireProperties.getLinkToSearchCompatibleDataProvidersTable();
   }
 
@@ -74,8 +76,8 @@
     private _getResults(){
         //this.csvParams = this.resourcesQuery+"&type=datasources";
 
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
       this.disableForms = true;
       this.results = [];
       this.searchUtils.totalResults = 0;
@@ -93,10 +95,10 @@
 
                         this.searchPage.checkSelectedFilters(this.filters);
 
-                        var errorCodes:ErrorCodes = new ErrorCodes();
-                        this.searchUtils.status = errorCodes.DONE;
+                        //var errorCodes:ErrorCodes = new ErrorCodes();
+                        this.searchUtils.status = this.errorCodes.DONE;
                         if(this.searchUtils.totalResults == 0 ){
-                          this.searchUtils.status = errorCodes.NONE;
+                          this.searchUtils.status = this.errorCodes.NONE;
                         }
                         this.disableForms = false;
                     },
@@ -106,8 +108,16 @@
                         // if( ){
                         //   this.searchUtils.status = ErrorCodes.ERROR;
                         // }
-                        var errorCodes:ErrorCodes = new ErrorCodes();
-                        this.searchUtils.status = errorCodes.ERROR;
+                        //var errorCodes:ErrorCodes = new ErrorCodes();
+                        //this.searchUtils.status = errorCodes.ERROR;
+                        if(err.status == '404') {
+                          this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                        } else if(err.status == '500') {
+                          this.searchUtils.status = this.errorCodes.ERROR;
+                        } else {
+                          this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                        }
+
                         this.disableForms = false;
 
                     }
@@ -115,8 +125,8 @@
               } else {
                 this.searchPage.checkSelectedFilters(this.filters);
 
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.NONE;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                this.searchUtils.status = this.errorCodes.NONE;
                 this.disableForms = false;
               }
           },
@@ -126,8 +136,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
 
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/entityRegistriesTable.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/entityRegistriesTable.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/dataProviders/entityRegistriesTable.component.ts	(revision 49174)
@@ -28,6 +28,8 @@
 
 })
 export class SearchEntityRegistriesTableComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public baseUrl:string;
@@ -41,8 +43,8 @@
   @ViewChild (SearchPageTableViewComponent) searchPage : SearchPageTableViewComponent ;
 
   constructor (private route: ActivatedRoute, private _searchDataprovidersService: SearchDataprovidersService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
   }
 
   public ngOnInit() {
@@ -65,8 +67,8 @@
       this.subResults.unsubscribe();
     }  }
     private _getResults(parameters:string,refine:boolean, page: number){
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
       this.disableForms = true;
       this.results = [];
       this.searchUtils.totalResults = 0;
@@ -83,10 +85,10 @@
                         this.results = data[1];
                         this.searchPage.checkSelectedFilters(this.filters);
 
-                        var errorCodes:ErrorCodes = new ErrorCodes();
-                        this.searchUtils.status = errorCodes.DONE;
+                        //var errorCodes:ErrorCodes = new ErrorCodes();
+                        this.searchUtils.status = this.errorCodes.DONE;
                         if(this.searchUtils.totalResults == 0 ){
-                          this.searchUtils.status = errorCodes.NONE;
+                          this.searchUtils.status = this.errorCodes.NONE;
                         }
                         this.disableForms = false;
 
@@ -97,8 +99,16 @@
                         // if( ){
                         //   this.searchUtils.status = ErrorCodes.ERROR;
                         // }
-                        var errorCodes:ErrorCodes = new ErrorCodes();
-                        this.searchUtils.status = errorCodes.ERROR;
+                        //var errorCodes:ErrorCodes = new ErrorCodes();
+                        //this.searchUtils.status = errorCodes.ERROR;
+                        if(err.status == '404') {
+                          this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                        } else if(err.status == '500') {
+                          this.searchUtils.status = this.errorCodes.ERROR;
+                        } else {
+                          this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                        }
+
                         this.disableForms = false;
 
                     }
@@ -106,8 +116,8 @@
               } else {
                 this.searchPage.checkSelectedFilters(this.filters);
 
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.NONE;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                this.searchUtils.status = this.errorCodes.NONE;
                 this.disableForms = false;
               }
           },
@@ -117,8 +127,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
 /*
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchOrganizations.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchOrganizations.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchOrganizations.component.ts	(revision 49174)
@@ -20,6 +20,8 @@
                  [baseUrl] = "baseUrl" (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="organizations" advancedSearchLink="/search/advanced/organizations"
                  [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults"
                  searchFormClass="organizationsSearchForm">
     </search-page>
 
@@ -27,6 +29,8 @@
 
 })
 export class SearchOrganizationsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters =[];
   public baseUrl:string;
@@ -40,13 +44,15 @@
   public _location:Location;
   public csvParams: string;
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   @ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
 
   constructor (private route: ActivatedRoute, private _searchOrganizationsService: SearchOrganizationsService ) {
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.page =1;
     this.baseUrl = OpenaireProperties.getLinkToSearchOrganizations();
 
@@ -57,6 +63,11 @@
     this.searchPage.fieldIdsMap = this.fieldIdsMap;
     var firstLoad = true;
     this.sub =  this.route.queryParams.subscribe(params => {
+      if(params['page'] && this.searchUtils.page != params['page']) {
+        this.loadPaging = false;
+        this.oldTotalResults = this.searchUtils.totalResults;
+      }
+
       this.searchUtils.keyword = (params['keyword']?params['keyword']:'');
       var refine = true;
       if(this.searchUtils.page != ((params['page']=== undefined)?1:+params['page']) && this.filters && !firstLoad){
@@ -94,8 +105,8 @@
       // if(!refine && !this.searchPage){
       //     this.searchPage = new SearchPageComponent(this._location);
       // }
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
       //this.searchPage.openLoading();
       this.disableForms = true;
       this.results = [];
@@ -111,15 +122,15 @@
               }
               this.searchPage.checkSelectedFilters(this.filters);
               this.searchPage.updateBaseUrlWithParameters(this.filters);
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
               //this.searchPage.closeLoading();
               this.disableForms = false;
 
-              if(this.searchUtils.status == errorCodes.DONE) {
+              if(this.searchUtils.status == this.errorCodes.DONE) {
                 // Page out of limit!!!
                 let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
                 if(!(Number.isInteger(totalPages))) {
@@ -127,7 +138,7 @@
                 }
                 if(totalPages < page) {
                   this.searchUtils.totalResults = 0;
-                  this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+                  this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
                 }
               }
           },
@@ -137,8 +148,16 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
+
               //this.searchPage.closeLoading();
               this.disableForms = false;
           }
@@ -147,6 +166,8 @@
 
 
   public queryChanged($event) {
+    this.loadPaging = true;
+    
     var parameters = $event.value;
     console.info("queryChanged: Execute search query "+parameters);
     this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchProjects.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchProjects.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/searchPages/simple/searchProjects.component.ts	(revision 49174)
@@ -20,6 +20,8 @@
                  [baseUrl] = "baseUrl" (queryChange)="queryChanged($event)"
                  [csvParams]="csvParams" csvPath="projects" advancedSearchLink="/search/advanced/projects"
                  [disableForms]="disableForms"
+                 [loadPaging]="loadPaging"
+                 [oldTotalResults]="oldTotalResults"
                  searchFormClass="projectsSearchForm">
     </search-page>
      `
@@ -26,6 +28,8 @@
 
 })
 export class SearchProjectsComponent {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public filters: Filter[] =[];
   public baseUrl:string;
@@ -39,6 +43,8 @@
   public _location:Location;
   public csvParams: string;
   public disableForms: boolean = false;
+  public loadPaging: boolean = true;
+  public oldTotalResults: number = 0;
 
   @ViewChild (SearchPageComponent) searchPage : SearchPageComponent ;
 
@@ -45,8 +51,8 @@
   constructor (private route: ActivatedRoute, private _searchProjectsService: SearchProjectsService) {
     console.info(" constructor SearchProjectsComponent "+this.refineFields.length);
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     this.searchUtils.page =1;
     this.baseUrl = OpenaireProperties.getLinkToSearchProjects();
 
@@ -59,19 +65,23 @@
     //get refine field filters  from url parameters
     var firstLoad = true;
     this.sub =  this.route.queryParams.subscribe(params => {
+      if(params['page'] && this.searchUtils.page != params['page']) {
+        this.loadPaging = false;
+        this.oldTotalResults = this.searchUtils.totalResults;
+      }
 
-        //get keyword from url parameters
-        this.searchUtils.keyword = (params['keyword']?params['keyword']:'');
-        var refine = true;
-        if(this.searchUtils.page != ((params['page']=== undefined)?1:+params['page']) && this.filters && !firstLoad){
-          refine = false;
+      //get keyword from url parameters
+      this.searchUtils.keyword = (params['keyword']?params['keyword']:'');
+      var refine = true;
+      if(this.searchUtils.page != ((params['page']=== undefined)?1:+params['page']) && this.filters && !firstLoad){
+        refine = false;
 
-        }
-        firstLoad = false;
-        //get page from url parameters
-        this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
-       var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
-        this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
+      }
+      firstLoad = false;
+      //get page from url parameters
+      this.searchUtils.page = (params['page']=== undefined)?1:+params['page'];
+      var queryParameters = this.searchPage.getQueryParametersFromUrl(params);
+      this._getResults(queryParameters, refine, this.searchUtils.page, this.searchUtils.size);
     });
   }
 
@@ -98,8 +108,8 @@
     //     this.searchPage = new SearchPageComponent(this._location);
     // }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     //this.searchPage.openLoading();
     this.disableForms = true;
     this.results = [];
@@ -116,15 +126,15 @@
             this.searchPage.checkSelectedFilters(this.filters);
             // this.filters = this.searchPage.checkSelectedFilters(data[2]);
             this.searchPage.updateBaseUrlWithParameters(this.filters);
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
             //this.searchPage.closeLoading();
             this.disableForms = false;
 
-            if(this.searchUtils.status == errorCodes.DONE) {
+            if(this.searchUtils.status == this.errorCodes.DONE) {
               // Page out of limit!!!
               let totalPages:any = this.searchUtils.totalResults/(this.searchUtils.size);
               if(!(Number.isInteger(totalPages))) {
@@ -132,7 +142,7 @@
               }
               if(totalPages < page) {
                 this.searchUtils.totalResults = 0;
-                this.searchUtils.status = errorCodes.OUT_OF_BOUND;
+                this.searchUtils.status = this.errorCodes.OUT_OF_BOUND;
               }
             }
         },
@@ -142,8 +152,16 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
+
             //this.searchPage.closeLoading();
             this.disableForms = false;
         }
@@ -158,10 +176,10 @@
             console.info("search Projects for Dataproviders: [Id:"+id+" ]  [total results:"+this.searchUtils.totalResults+"]");
             this.results = data[1];
 
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
         },
         err => {
@@ -170,8 +188,15 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
         }
     );
   }
@@ -178,6 +203,8 @@
 
 
   public queryChanged($event) {
+    this.loadPaging = true;
+    
     this.urlParams = undefined;
     var parameters = $event.value;
     this._getResults(parameters, true, this.searchUtils.page, this.searchUtils.size);
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/datasetsTab.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/datasetsTab.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/datasetsTab.component.ts	(revision 49174)
@@ -6,9 +6,12 @@
 @Component({
     selector: 'datasetsTab',
     template: `
-        <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No research data available</div>        <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
-        <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-        <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+        <!--div *ngIf="fetchDatasets.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+        <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No research data available</div>
+        <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
+        <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service temprorarily unavailable. Please try again later.</div>
+        <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.NOT_FOUND" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">No research data found</div-->
+        <errorMessages [status]="[fetchDatasets.searchUtils.status]" [type]="'research data'"></errorMessages>
 
         <!--div *ngIf="fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert">
             No research data available
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/statisticsTab.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/statisticsTab.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/statisticsTab.component.ts	(revision 49174)
@@ -7,7 +7,7 @@
     selector: 'statisticsTab',
     template: `
     <div *ngIf="show">
-      <div *ngIf="searchPublicationsComponent.searchUtils.status == errorCodes.NONE && DatasetsComponent.searchUtils.status == errorCodes.NONE"
+      <!--div *ngIf="searchPublicationsComponent.searchUtils.status == errorCodes.NONE && DatasetsComponent.searchUtils.status == errorCodes.NONE"
             class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No statistics available</div>
       <div *ngIf="searchPublicationsComponent.searchUtils.status == errorCodes.ERROR || DatasetsComponent.searchUtils.status == errorCodes.ERROR"
             class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
@@ -14,7 +14,8 @@
       <div *ngIf="searchPublicationsComponent.searchUtils.status == errorCodes.NOT_AVAILABLE || DatasetsComponent.searchUtils.status == errorCodes.NOT_AVAILABLE"
             class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
       <div *ngIf="searchPublicationsComponent.searchUtils.status == errorCodes.LOADING || DatasetsComponent.searchUtils.status == errorCodes.LOADING"
-            class="uk-animation-fade  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+            class="uk-animation-fade  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+      <errorMessages [status]="[searchPublicationsComponent.searchUtils.status, DatasetsComponent.searchUtils.status]" [type]="'statistics'"></errorMessages>
 
       <!--div *ngIf="searchPublicationsComponent.searchUtils.totalResults == 0 && searchDatasetsComponent.searchUtils.totalResults == 0" class = "uk-alert">
           No statistics available
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/publicationsTab.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/publicationsTab.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/publicationsTab.component.ts	(revision 49174)
@@ -10,7 +10,8 @@
         <div *ngIf="fetchPublications.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
         <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
         <div *ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
-
+        <!--errorMessages [status]="[fetchPublications.searchUtils.status]" [type]="'publications'"></errorMessages>
+{{fetchPublications.searchUtils.status}}-->
         <!--div *ngIf="fetchPublications.searchUtils.totalResults == 0" class = "uk-alert">
             No publications available
         </div-->
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/relatedDatasourcesTab.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/relatedDatasourcesTab.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataProvider/relatedDatasourcesTab.component.ts	(revision 49174)
@@ -10,7 +10,7 @@
 @Component({
     selector: 'relatedDatasourcesTab',
     template: `
-        <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE && fetchDatasets.searchUtils.status == errorCodes.NONE"
+        <!--div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE && fetchDatasets.searchUtils.status == errorCodes.NONE"
               class="uk-alert uk-alert-primary uk-animation-fade" role="alert">
               No related content providers available
         </div>
@@ -17,15 +17,17 @@
         <div *ngIf="fetchPublications.searchUtils.status == errorCodes.ERROR && fetchDatasets.searchUtils.status == errorCodes.ERROR"
               class="uk-alert uk-alert-warning uk-animation-fade" role="alert">
           An Error Occured
-        </div>
+        </div-->
         <!--div *ngIf="fetchPublications.searchUtils.status == errorCodes.NOT_AVAILABLE && fetchDatasets.searchUtils.status == errorCodes.NOT_AVAILABLE"
               class="uk-alert uk-alert-danger uk-animation-fade" role="alert">
           Service not available
         </div-->
-        <div *ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING || fetchDatasets.searchUtils.status == errorCodes.LOADING || loading"
+        <!--div *ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING || fetchDatasets.searchUtils.status == errorCodes.LOADING || loading"
               class="uk-animation-fade uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading">
-        </div>
+        </div-->
 
+        <errorMessages [status]="[fetchPublications.searchUtils.status, fetchDatasets.searchUtils.status]" [type]="'related content providers'"></errorMessages>
+
         <div *ngIf="(fetchPublications.searchUtils.status == errorCodes.DONE || fetchDatasets.searchUtils.status == errorCodes.DONE) && !loading">
             <div *ngIf="results && results.size > pageSize" class="uk-margin">
               <span class="uk-text-bold">{{results.size}} related content providers, page {{page}} of {{totalPages(results.size)}}</span>
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/organization/organization.component.ts	(revision 49174)
@@ -14,7 +14,7 @@
 import {SearchProjectsService} from '../../services/searchProjects.service';
 import { Meta} from '../../../angular2-meta';
 import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openaireProperties';
-import {SearchingProjectsTabComponent} from '../searchingProjectsInTab.component';
+import {SearchingProjectsTabComponent} from '../landing-utils/searchingProjectsInTab.component';
 import {RouterHelper} from '../../utils/routerHelper.class';
 
 import {ModalLoading} from '../../utils/modal/loading.component';
@@ -296,7 +296,7 @@
                   this.downloadFilePiwikSub = this._piwikService.trackDownload(url).subscribe();
                 }
            },
-           error => {
+           err => {
              console.log("Error downloading the file.");
              this.closeLoading();
              this.confirmOpenCsvError();
@@ -369,7 +369,7 @@
                                                       // }
                                                   }
                                               },
-                                          error => {
+                                          err => {
                                             console.log("Error downloading the file.");
                                             this.closeLoading();
                                             this.confirmOpenCsvError();
@@ -378,11 +378,11 @@
                                       );
                                   }
                               },
-                          error => console.log("Error getting number of publications for project."));
+                          err => console.log("Error getting number of publications for project."));
                   }//);
 
                },
-           error => {
+           err => {
             console.log("Error getting projects project.");
             this.closeLoading();
             this.confirmOpenCsvError();
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataset/dataset.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataset/dataset.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/dataset/dataset.module.ts	(revision 49174)
@@ -8,13 +8,13 @@
 import { DatasetService} from './dataset.service';
 import { DatasetComponent } from './dataset.component';
 import { DatasetRoutingModule } from './dataset-routing.module';
-import {MetricsModule} from '../metrics.module';
+import {MetricsModule} from '../landing-utils/metrics.module';
 import {IFrameModule} from '../../utils/iframe.module';
 import {AltMetricsModule} from '../../utils/altmetrics.module';
 import {CiteThisModule} from '../landing-utils/citeThis/citeThis.module';
 
-import { ResultLandingModule } from '../resultLanding.module';
-import { LandingModule } from '../landing.module';
+import { ResultLandingModule } from '../landing-utils/resultLanding.module';
+import { LandingModule } from '../landing-utils/landing.module';
 import {FreeGuard} from'../../login/freeGuard.guard';
 
 @NgModule({
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/publication/publication.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/publication/publication.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/publication/publication.module.ts	(revision 49174)
@@ -8,14 +8,14 @@
 import { PublicationService} from './publication.service';
 import { PublicationComponent } from './publication.component';
 import { PublicationRoutingModule } from './publication-routing.module';
-import {MetricsModule} from '../metrics.module';
+import {MetricsModule} from '../landing-utils/metrics.module';
 import {IFrameModule} from '../../utils/iframe.module';
 import {AltMetricsModule} from '../../utils/altmetrics.module';
 import {CiteThisModule} from '../landing-utils/citeThis/citeThis.module';
 import {PagingModule} from '../../utils/paging.module';
 
-import { ResultLandingModule } from '../resultLanding.module';
-import { LandingModule } from '../landing.module';
+import { ResultLandingModule } from '../landing-utils/resultLanding.module';
+import { LandingModule } from '../landing-utils/landing.module';
 import {FreeGuard} from'../../login/freeGuard.guard';
 
 @NgModule({
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/project/project.component.html
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/project/project.component.html	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/project/project.component.html	(revision 49174)
@@ -158,12 +158,12 @@
                     <!--div *ngIf="fetchPublications.searchUtils.totalResults == 0" class = "uk-alert  uk-alert-primary" >
                         No publications available
                     </div-->
-                    <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No publications available</div>
+                    <!--div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No publications available</div>
                     <div *ngIf="fetchPublications.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
                     <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-                    <div *ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+                    <div*ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+                    <errorMessages [status]="[fetchPublications.searchUtils.status]" [type]="'publications'"></errorMessages>
 
-
                     <div *ngIf="fetchPublications.searchUtils.totalResults > 0">
                         <div class = "uk-text-right" *ngIf = "fetchPublications.searchUtils.totalResults > 10" >
                             <a  [queryParams]="routerHelper.createQueryParams(['project', 'pr'], [projectId, 'and'])"
@@ -182,12 +182,12 @@
                     <!--div *ngIf="fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert  uk-alert-primary">
                         No research data available
                     </div-->
-                    <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No research data available</div>
+                    <!--div *ngIf="fetchDatasets.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No research data available</div>
                     <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
                     <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
-                    <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+                    <div *ngIf="fetchDatasets.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+                    <errorMessages [status]="[fetchDatasets.searchUtils.status]" [type]="'research data'"></errorMessages>
 
-
                     <div *ngIf="fetchDatasets.searchUtils.totalResults > 0">
 
                         <div class = "uk-text-right" *ngIf = "fetchDatasets.searchUtils.totalResults > 10">
@@ -206,7 +206,7 @@
                   <!--div *ngIf="fetchPublications.searchUtils.totalResults == 0 && fetchDatasets.searchUtils.totalResults == 0" class = "uk-alert  uk-alert-primary">
                       No statistics available
                   </div-->
-                  <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE && fetchDatasets.searchUtils.status == errorCodes.NONE"
+                  <!--div *ngIf="fetchPublications.searchUtils.status == errorCodes.NONE && fetchDatasets.searchUtils.status == errorCodes.NONE"
                         class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No statistics available</div>
                   <div *ngIf="fetchPublications.searchUtils.status == errorCodes.ERROR || fetchDatasets.searchUtils.status == errorCodes.ERROR"
                         class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
@@ -213,7 +213,8 @@
                   <div *ngIf="fetchPublications.searchUtils.status == errorCodes.NOT_AVAILABLE || fetchDatasets.searchUtils.status == errorCodes.NOT_AVAILABLE"
                         class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
                   <div *ngIf="fetchPublications.searchUtils.status == errorCodes.LOADING || fetchDatasets.searchUtils.status == errorCodes.LOADING"
-                        class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+                        class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+                  <errorMessages [status]="[fetchPublications.searchUtils.status, fetchDatasets.searchUtils.status]" [type]="'statistics'"></errorMessages>
 
                   <div *ngIf="statsClicked && (fetchPublications.searchUtils.totalResults != 0 || fetchDatasets.searchUtils.totalResults != 0)">
 
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/project/project.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/project/project.module.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/project/project.module.ts	(revision 49174)
@@ -7,22 +7,23 @@
 import { ProjectServiceModule} from './projectService.module';
 // import {HtmlProgressReportService} from './htmlProgressReport.service';
 import{LoadingModalModule} from '../../utils/modal/loadingModal.module';
+import {ErrorMessagesModule} from '../../utils/errorMessages.module';
 
 import { ProjectComponent } from './project.component';
 import { ProjectRoutingModule } from './project-routing.module';
 import {IFrameModule} from '../../utils/iframe.module';
-import {MetricsModule} from '../metrics.module';
+import {MetricsModule} from '../landing-utils/metrics.module';
 import {ReportsServiceModule} from '../../services/reportsService.module';
 import {PublicationsServiceModule} from '../../services/publicationsService.module';
 import {DatasetsServiceModule} from '../../services/datasetsService.module';
 import {TabResultModule } from '../../searchPages/searchUtils/tabResult.module';
-import { LandingModule } from '../landing.module';
+import { LandingModule } from '../landing-utils/landing.module';
 import {FreeGuard} from'../../login/freeGuard.guard';
 
 @NgModule({
   imports: [
     CommonModule, FormsModule, RouterModule, LandingModule,
-    ProjectRoutingModule, LoadingModalModule,
+    ProjectRoutingModule, LoadingModalModule, ErrorMessagesModule,
     TabResultModule, IFrameModule, MetricsModule, ReportsServiceModule,
     PublicationsServiceModule, DatasetsServiceModule, ProjectServiceModule
   ],
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/metrics.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/metrics.module.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/metrics.module.ts	(revision 49174)
@@ -0,0 +1,26 @@
+/* This module contains all common components for all landing pages */
+
+import { NgModule}            from '@angular/core';
+import { CommonModule }        from '@angular/common';
+import { FormsModule }         from '@angular/forms';
+
+ import {MetricsComponent} from './metrics.component';
+ import { MetricsService } from '../../services/metrics.service';
+
+ import {ErrorMessagesModule} from '../../utils/errorMessages.module';
+
+@NgModule({
+  imports: [
+    CommonModule, FormsModule, ErrorMessagesModule
+  ],
+  declarations: [
+    MetricsComponent
+  ],
+  providers:[
+    MetricsService
+   ],
+  exports: [
+    MetricsComponent
+  ]
+})
+export class MetricsModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/resultLanding.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/resultLanding.module.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/resultLanding.module.ts	(revision 49174)
@@ -0,0 +1,26 @@
+/* This module contains all common components for Publication & Daasets Landing Pages */
+import { NgModule}            from '@angular/core';
+import { CommonModule }        from '@angular/common';
+import { FormsModule }         from '@angular/forms';
+import { RouterModule } from '@angular/router';
+import {PagingModule} from '../../utils/paging.module';
+
+import {ShowAuthorsComponent} from './showAuthors.component';
+import {ShowIdentifiersComponent} from './showIdentifiers.component';
+import {ShowSubjectsComponent} from './showSubjects.component';
+import {TabTableComponent} from './tabTable.component';
+
+@NgModule({
+  imports: [
+    CommonModule, FormsModule, RouterModule, PagingModule
+  ],
+  declarations: [
+   ShowAuthorsComponent,ShowIdentifiersComponent,ShowSubjectsComponent, TabTableComponent
+  ],
+  providers:[
+   ],
+  exports: [
+     ShowAuthorsComponent,ShowIdentifiersComponent,ShowSubjectsComponent, TabTableComponent
+    ]
+})
+export class ResultLandingModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/searchingProjectsInTab.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/searchingProjectsInTab.module.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/searchingProjectsInTab.module.ts	(revision 49174)
@@ -0,0 +1,31 @@
+/* This module contains all common components for all landing pages */
+
+import { NgModule}            from '@angular/core';
+import { CommonModule }        from '@angular/common';
+import { FormsModule }         from '@angular/forms';
+import { RouterModule }       from '@angular/router';
+
+import { ProjectsServiceModule} from '../../services/projectsService.module';
+import { TabResultModule } from '../../searchPages/searchUtils/tabResult.module';
+import { SearchingProjectsTabComponent} from './searchingProjectsInTab.component';
+
+import {PagingModule } from '../../utils/paging.module';
+import {ErrorMessagesModule} from '../../utils/errorMessages.module';
+
+@NgModule({
+  imports: [
+      RouterModule, CommonModule, FormsModule,
+      ProjectsServiceModule, TabResultModule,
+      PagingModule, ErrorMessagesModule
+   ],
+  declarations: [
+     SearchingProjectsTabComponent
+  ],
+  providers:[
+   ],
+  exports: [
+
+    SearchingProjectsTabComponent
+    ]
+})
+export class SearchingProjectsTabModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/addThis.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/addThis.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/addThis.component.ts	(revision 49174)
@@ -0,0 +1,40 @@
+import {Component, ElementRef, Input} from '@angular/core';
+import {ActivatedRoute} from '@angular/router';
+
+ interface addthis {
+     layers: refresh;
+ }
+ interface refresh {
+     refresh: Function;
+ }
+ declare var addthis: addthis;
+
+//<addThis ></addThis>
+@Component({
+  selector: 'addThis',
+  template: `
+  <div class="addthis_inline_share_toolbox"></div>
+  `
+})
+export class AddThisComponent {
+  private sub:any;
+
+
+  constructor(private route: ActivatedRoute) {
+
+  }
+  ngOnInit() {
+    this.sub =  this.route.queryParams.subscribe(data => {
+
+      if (typeof document !== 'undefined') {
+        try{
+          addthis.layers.refresh();
+        }catch (e) {
+        }
+      }
+  });
+
+  }
+
+
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showTitle.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showTitle.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showTitle.component.ts	(revision 49174)
@@ -0,0 +1,66 @@
+import {Component, Input} from '@angular/core';
+import {ActivatedRoute} from '@angular/router';
+
+@Component({
+    selector: 'showTitle',
+    template: `
+        <h2 *ngIf="title != undefined">
+            <!--span [class]="'entityTitleIcon '+iconClass"></span-->
+            <span   *ngIf="title['url'] != undefined && title['url'] != null && title['url'] != ''"
+                    class="custom-external">
+                    <!--span class=" custom-icon {{title['accessMode']}}"
+                    uk-tooltip="pos:bottom-right"
+                    [title]="title['accessMode']"-->
+                <a *ngIf="title['name'] != undefined && title['name'] != ''"
+                    href="{{title['url']}}" target="_blank"
+                    [innerHTML]="title['name']">
+                </a>
+                <a *ngIf="title['name'] == undefined || title['name'] == ''"
+                    href="{{title['url']}}" target="_blank">
+                    [no title available]
+                </a>
+            <!--/span-->
+            </span>
+            <span *ngIf="(title['name'] != undefined && title['name'] != '') &&
+                    (title['url'] == undefined || title['url'] == null || title['url'] == '')"
+                    [innerHTML]="title['name']">
+            </span>
+            <span *ngIf="(title['name'] == undefined || title['name'] == '') &&
+                    (title['url'] == undefined || title['url'] == null || title['url'] == '')"
+                     >
+                [no title available]
+            </span>
+        </h2>
+        <!--[class]="title['accessMode']"
+        uk-tooltip="pos:bottom-right"
+        [title]="title['accessMode']"
+        [innerHTML]="title['name']" -->
+    `
+
+    })
+
+export class ShowTitleComponent {
+  @Input() title: { [key: string]: string };
+  @Input() iconClass:string;
+
+  sub: any;
+
+  constructor (private route: ActivatedRoute) {}
+
+  ngOnInit() {
+    this.sub = this.route.queryParams.subscribe(
+      params => {
+        console.info("onInit showTitle");
+
+        if(this.title['accessMode'] == undefined) {
+          this.title['accessMode'] = "";
+        }
+      }
+    );
+  }
+
+  ngOnDestroy() {
+    console.info("onDestroy showTitle");
+    this.sub.unsubscribe();
+  }
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showAuthors.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showAuthors.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showAuthors.component.ts	(revision 49174)
@@ -0,0 +1,65 @@
+import {Component, Input, ElementRef} from '@angular/core';
+import {RouterHelper} from '../../utils/routerHelper.class';
+
+@Component({
+    selector: 'showAuthors',
+    template: `
+        <span *ngIf="authors != undefined">
+            <div *ngIf="showAll">
+                <a class="uk-text-muted" (click)="showAll = !showAll;">View less authors</a>
+            </div>
+            <span *ngFor="let item of authors.slice(0,30) let i=index">
+                  <!--a href="{{item['url']}}"-->
+                  <a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(item['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+searchPage">
+                      {{item['name']}}
+                  </a>
+               <span *ngIf=" i<29 && i<(authors.length-1)">;</span>
+            </span>
+            <span *ngIf="!showAll && authors.length > 30">	... </span>
+            <span *ngIf="showAll">
+                <span *ngFor="let item of authors.slice(30) let i=index">
+                    <!--a href="{{item['url']}}"-->
+                    <a [queryParams]="routerHelper.createQueryParams(['author','au'],[quote(item['name']),'and'])" routerLinkActive="router-link-active" [routerLink]="'/search/advanced/'+searchPage">
+                        {{item['name']}}
+                    </a>
+                    <span *ngIf="  i<(authors.length-1)">;</span>
+                </span>
+            </span>
+            <span *ngIf="!showAll && authors.length > 30">
+                <a class="uk-text-muted" (click)="showAll = !showAll;">
+                    view all {{authors.length}} authors
+                </a>
+            </span>
+            <span *ngIf="showAll">
+                <a class="uk-text-muted" (click)="showAll = !showAll; scroll()">View less authors</a>
+            </span>
+        </span>
+
+    `
+
+    })
+
+export class ShowAuthorsComponent {
+    @Input() authors: { [key: string]: string }[];
+    @Input() searchPage:string ="publications"
+
+    public showAll: boolean = false;
+    public routerHelper:RouterHelper = new RouterHelper();
+
+    constructor (private element: ElementRef) {
+    }
+
+    ngOnInit() {
+    }
+
+    public  quote(params: string):string {
+        return '"'+params+'"';
+    }
+
+    public scroll() {
+      console.info("scroll into view");
+      if (typeof document !== 'undefined') {
+         this.element.nativeElement.scrollIntoView();
+      }
+    }
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showIdentifiers.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showIdentifiers.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showIdentifiers.component.ts	(revision 49174)
@@ -0,0 +1,91 @@
+import {Component, Input, ElementRef} from '@angular/core';
+import {OpenaireProperties} from '../../utils/properties/openaireProperties';
+
+@Component({
+    selector: 'showIdentifiers',
+    template: `
+
+                <span *ngIf="showAll && countIdentifiers() > pageSize">
+                    <a class="uk-text-muted" (click)="showAll = !showAll;">View less identifiers</a>
+                </span>
+
+                <ng-container *ngFor="let key of identifiers.keys() let i=index">
+                  <ng-container *ngIf="countSizeOfPreviousIdentifiers(i) < pageSize">
+                    <ng-container *ngFor="let item of identifiers.get(key) let j=index">
+                      <span *ngIf="(sizeOfPreviousIdentifiers + j) < pageSize || showAll" class="custom-external custom-icon">
+                        <a *ngIf="key=='doi'" href="{{doiURL}}{{item}}" target="_blank">{{key}}: {{item}}</a><a
+                        *ngIf="key=='pmc'" href="{{pmcURL}}{{item}}" target="_blank">{{key}}: {{item}}</a><a
+                        *ngIf="key=='handle'" href="{{handleURL}}{{item}}" target="_blank">{{key}}: {{item}}</a></span><span
+
+                        *ngIf="((sizeOfPreviousIdentifiers + j) < pageSize || showAll) && ((sizeOfPreviousIdentifiers + j) < countIdentifiers()-1)">{{", "}}</span>
+                      <span *ngIf="!showAll && (sizeOfPreviousIdentifiers + j)==pageSize"> ... </span>
+                    </ng-container>
+                  </ng-container>
+                </ng-container>
+
+                <span *ngIf="!showAll && countIdentifiers() > pageSize">
+                    <a class="uk-text-muted" (click)="showAll = !showAll;">
+                        view all {{countIdentifiers()}} identifiers
+                    </a>
+                </span>
+                <span *ngIf="showAll && countIdentifiers() > pageSize">
+                    <a class="uk-text-muted" (click)="showAll = !showAll; scroll()">View less identifiers</a>
+                </span>
+
+
+    `
+    })
+
+export class ShowIdentifiersComponent {
+    @Input() identifiers: Map<string, string[]>;
+    public doiURL: string;
+    public pmcURL: string;
+    public handleURL: string;
+    public showAll: boolean = false;
+    public sizeOfIdentifiers: number = -1;
+    public sizeOfPreviousIdentifiers: number = -1;
+    public pageSize: number = 10;
+
+    constructor (private element: ElementRef) {
+        this.doiURL = OpenaireProperties.getDoiURL();
+        this.pmcURL = OpenaireProperties.getPmcURL();
+        this.handleURL = OpenaireProperties.getHandleURL();
+    }
+
+    ngOnInit() {}
+
+    public countIdentifiers(): number {
+      if(this.sizeOfIdentifiers < 0) {
+        let num: number = 0;
+        if(this.identifiers != undefined) {
+            this.identifiers.forEach(function (value, key, map) {
+                num += value.length;
+            });
+        }
+        this.sizeOfIdentifiers = num;
+      }
+      return this.sizeOfIdentifiers;
+    }
+
+    public countSizeOfPreviousIdentifiers(index: number): number {
+      let num: number = 0;
+      let i: number = 0;
+      if(this.identifiers != undefined) {
+        this.identifiers.forEach(function (value, key, map) {
+          if(i < index) {
+            num += value.length;
+          }
+          i++;
+        });
+      }
+      this.sizeOfPreviousIdentifiers= num;
+      return num;
+    }
+
+    public scroll() {
+      console.info("scroll into view");
+      if (typeof document !== 'undefined') {
+         this.element.nativeElement.scrollIntoView();
+      }
+    }
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/utils/errorMessages.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/utils/errorMessages.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/utils/errorMessages.component.ts	(revision 49174)
@@ -0,0 +1,51 @@
+import {Component, Input} from '@angular/core';
+import {ErrorCodes} from './properties/openaireProperties';
+
+@Component({
+    selector: 'errorMessages',
+    template: `
+      <div *ngIf="status.some(checkErroCode(errorCodes.LOADING))" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+      <div *ngIf="status.every(checkErroCode(errorCodes.NONE))"   class="uk-animation-fade uk-alert uk-alert-primary" role="alert">No {{type}} available</div>
+      <div *ngIf="status.every(checkErroCode(errorCodes.ERROR)) ||
+                  (status.some(checkErroCode(errorCodes.ERROR)) && (!status.every(checkErroCode(errorCodes.DONE)) || !status.every(checkErroCode(errorCodes.LOADING))))"
+            class="uk-animation-fade uk-alert uk-alert-warning" role="alert">
+        An Error Occured
+      </div>
+      <div *ngIf="status.every(checkErroCode(errorCodes.NOT_AVAILABLE)) ||
+                  (status.some(checkErroCode(errorCodes.NOT_AVAILABLE)) && (!status.every(checkErroCode(errorCodes.DONE)) || !status.every(checkErroCode(errorCodes.LOADING))))"
+            class="uk-animation-fade uk-alert uk-alert-warning" role="alert">
+        Service temprorarily unavailable. Please try again later.
+      </div>
+      <div *ngIf="status.every(checkErroCode(errorCodes.NOT_FOUND)) ||
+                  (status.some(checkErroCode(errorCodes.NOT_FOUND)) && (!status.every(checkErroCode(errorCodes.DONE)) || !status.every(checkErroCode(errorCodes.LOADING))))"
+            class="uk-animation-fade uk-alert uk-alert-warning" role="alert">
+        No {{type}} found
+      </div>
+      <div *ngIf="status.every(checkErroCode(errorCodes.OUT_OF_BOUND))" class="uk-animation-fade uk-alert uk-alert-warning" role="alert">Requested page out of bounds</div>
+    `
+  })
+
+  export class ErrorMessagesComponent {
+      @Input() status: Array<number>;
+      @Input() type: string;
+
+      public errorCodes:ErrorCodes;
+
+      constructor () {}
+
+      ngOnInit() {
+          this.errorCodes = new ErrorCodes();
+          console.info("ngOnInit");
+          if(!this.status) {
+            this.status = [this.errorCodes.LOADING];
+          }
+      }
+
+      ngOnDestroy() {}
+
+      public checkErroCode(code: number) {
+        return function(status: number) {
+          return (status == code);
+        }
+      }
+  }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchPublications.class.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchPublications.class.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchPublications.class.ts	(revision 49174)
@@ -7,6 +7,8 @@
 import {Subject} from 'rxjs/Subject';
 
 export class FetchPublications {
+  private errorCodes: ErrorCodes;
+
   public results =[];
 
   public requestComplete: Subject<void>;
@@ -30,8 +32,8 @@
   public csvParams: string;
 
   constructor ( private _searchPublicationsService: SearchPublicationsService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
     // this.baseUrl = OpenaireProperties.getLinkToSearchPublications();
 
     this.requestComplete = new Subject<void>();
@@ -64,8 +66,8 @@
     }
 
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
     this.subResults = this._searchPublicationsService.searchPublications(parameters,null, page, size, []).subscribe(
         data => {
@@ -73,10 +75,10 @@
             console.info("search Publications: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
             this.results = data[1];
 
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
          },
         err => {
@@ -85,16 +87,22 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
-
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
         }
     );
   }
 
 public getResultsForEntity(entity:string, id:string, page: number, size: number){
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   var parameters = "";
   if(entity == "project") {
@@ -111,10 +119,10 @@
               console.info("search Publications for "+entity+": [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -123,8 +131,16 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -131,8 +147,8 @@
 }
 
 public getResultsForDataproviders(id:string, resultsFrom:string, page: number, size: number){
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   var parameters;
   if(resultsFrom == "collectedFrom") {
@@ -149,10 +165,10 @@
               console.info("search Publications for Dataproviders: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -161,8 +177,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -169,8 +192,8 @@
 }
 
 public getAggregatorResults(id:string, page: number, size: number){
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   this.subResults = this._searchPublicationsService.searchAggregators(id, '&fq=collectedfromdatasourceid exact "'+id+'"',"&refine=true&fields=resulthostingdatasource" , page, size).subscribe(
       data => {
@@ -177,23 +200,31 @@
           this.results = data;
           this.searchUtils.totalResults = this.results.length;
 
-          var errorCodes:ErrorCodes = new ErrorCodes();
-          this.searchUtils.status = errorCodes.DONE;
+          //var errorCodes:ErrorCodes = new ErrorCodes();
+          this.searchUtils.status = this.errorCodes.DONE;
           if(this.searchUtils.totalResults == 0 ){
-            this.searchUtils.status = errorCodes.NONE;
+            this.searchUtils.status = this.errorCodes.NONE;
           }
 
           this.requestComplete.complete();
       },
       err => {
-          this.requestComplete.complete();
           console.log(err);
            //TODO check erros (service not available, bad request)
           // if( ){
           //   this.searchUtils.status = ErrorCodes.ERROR;
           // }
-          var errorCodes:ErrorCodes = new ErrorCodes();
-          this.searchUtils.status = errorCodes.ERROR;
+          //var errorCodes:ErrorCodes = new ErrorCodes();
+          //this.searchUtils.status = errorCodes.ERROR;
+          if(err.status == '404') {
+            this.searchUtils.status = this.errorCodes.NOT_FOUND;
+          } else if(err.status == '500') {
+            this.searchUtils.status = this.errorCodes.ERROR;
+          } else {
+            this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+          }
+
+          this.requestComplete.complete();
       }
   );
 }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchProjects.class.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchProjects.class.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchProjects.class.ts	(revision 49174)
@@ -3,6 +3,8 @@
 import {SearchUtilsClass } from '../../searchPages/searchUtils/searchUtils.class';
 
 export class FetchProjects{
+  private errorCodes: ErrorCodes;
+
   public results =[];
 
   public filters; // for getResultsForOrganizations
@@ -14,8 +16,8 @@
 
 
   constructor (private _searchProjectsService: SearchProjectsService) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   }
 
@@ -34,8 +36,8 @@
       parameters = "q=" + keyword;
     }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   this.subResults = this._searchProjectsService.searchProjects(parameters, null, page, size, []).subscribe(
         data => {
@@ -43,10 +45,10 @@
             console.info("search Projects: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
             this.results = data[1];
 
-             var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+             //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
          },
         err => {
@@ -55,15 +57,22 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
          }
     );
   }
 
   public getResultsForDataproviders(id:string, page: number, size: number){
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
     this._searchProjectsService.getProjectsforDataProvider(id, page, size).subscribe(
         data => {
@@ -71,10 +80,10 @@
             console.info("search Projects for Dataproviders: [Id:"+id+" ]  [total results:"+this.searchUtils.totalResults+"]");
             this.results = data[1];
 
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
         },
         err => {
@@ -83,15 +92,22 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
         }
     );
   }
 
   public getNumForEntity(entity: string, id:string) {
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
       if(id != "" && entity != "") {
 
@@ -99,10 +115,10 @@
               data => {
                   this.searchUtils.totalResults = data;
 
-                  var errorCodes:ErrorCodes = new ErrorCodes();
-                  this.searchUtils.status = errorCodes.DONE;
+                  //var errorCodes:ErrorCodes = new ErrorCodes();
+                  this.searchUtils.status = this.errorCodes.DONE;
                   if(this.searchUtils.totalResults == 0 ){
-                    this.searchUtils.status = errorCodes.NONE;
+                    this.searchUtils.status = this.errorCodes.NONE;
                   }
               },
               err => {
@@ -111,8 +127,16 @@
                   // if( ){
                   //   this.searchUtils.status = ErrorCodes.ERROR;
                   // }
-                  var errorCodes:ErrorCodes = new ErrorCodes();
-                  this.searchUtils.status = errorCodes.ERROR;
+                  //var errorCodes:ErrorCodes = new ErrorCodes();
+                  //this.searchUtils.status = errorCodes.ERROR;
+
+                  if(err.status == '404') {
+                    this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                  } else if(err.status == '500') {
+                    this.searchUtils.status = this.errorCodes.ERROR;
+                  } else {
+                    this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                  }
               }
           );
       }
@@ -119,8 +143,8 @@
   }
 
   public getResultsForOrganizations(organizationId:string, filterquery:string, page: number, size: number, refineFields:string[]){
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
     this._searchProjectsService.getProjectsForOrganizations(organizationId,filterquery, page, size,refineFields).subscribe(
         data => {
@@ -156,10 +180,10 @@
               console.log("  this.funders:"+   this.funders);
 
             }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
         },
         err => {
@@ -168,8 +192,15 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
         }
     );
   }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchDatasets.class.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchDatasets.class.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchDatasets.class.ts	(revision 49174)
@@ -5,6 +5,8 @@
 import {Subject} from 'rxjs/Subject';
 
 export class FetchDatasets{
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public requestComplete: Subject<void>;
 
@@ -16,8 +18,8 @@
 
   constructor ( private _searchDatasetsService: SearchDatasetsService ) {
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
     this.requestComplete = new Subject<void>();
   }
@@ -50,8 +52,8 @@
       }
     }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
     this.subResults = this._searchDatasetsService.searchDatasets(parameters,null, page, size, []).subscribe(
         data => {
@@ -59,10 +61,10 @@
             console.info("search Research Data: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
             this.results = data[1];
 
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
          },
         err => {
@@ -71,15 +73,22 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
          }
     );
   }
 
 public getNumForEntity(entity:string, id:string){
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
 
     if(id != "" && entity != "") {
@@ -87,10 +96,10 @@
             data => {
                 this.searchUtils.totalResults = data;
 
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.DONE;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                this.searchUtils.status = this.errorCodes.DONE;
                 if(this.searchUtils.totalResults == 0 ){
-                  this.searchUtils.status = errorCodes.NONE;
+                  this.searchUtils.status = this.errorCodes.NONE;
                 }
             },
             err => {
@@ -99,8 +108,15 @@
                 // if( ){
                 //   this.searchUtils.status = ErrorCodes.ERROR;
                 // }
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.ERROR;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                //this.searchUtils.status = errorCodes.ERROR;
+                if(err.status == '404') {
+                  this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                } else if(err.status == '500') {
+                  this.searchUtils.status = this.errorCodes.ERROR;
+                } else {
+                  this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                }
             }
         );
     }
@@ -107,8 +123,8 @@
 }
 
 public getResultsForEntity(entity:string, id:string, page: number, size: number){
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   var parameters = "";
 
@@ -124,10 +140,10 @@
               console.info("search Research Data for "+entity+": [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -136,8 +152,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -144,8 +167,8 @@
 }
 
 public getResultsForDataproviders(id:string, resultsFrom:string, page: number, size: number){
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   var parameters;
   if(resultsFrom == "collectedFrom") {
@@ -162,10 +185,10 @@
               console.info("search Research Data for Dataproviders: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -174,8 +197,15 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
@@ -182,8 +212,8 @@
 }
 
 public getAggregatorResults(id:string, page: number, size: number){
-  var errorCodes:ErrorCodes = new ErrorCodes();
-  this.searchUtils.status = errorCodes.LOADING;
+  //var errorCodes:ErrorCodes = new ErrorCodes();
+  this.searchUtils.status = this.errorCodes.LOADING;
 
   this.subResults = this._searchDatasetsService.searchAggregators(id, '&fq=collectedfromdatasourceid exact "'+id+'"',"&refine=true&fields=resulthostingdatasource" , page, size).subscribe(
       data => {
@@ -190,23 +220,32 @@
           this.results = data;
           this.searchUtils.totalResults = this.results.length;
 
-          var errorCodes:ErrorCodes = new ErrorCodes();
-          this.searchUtils.status = errorCodes.DONE;
+          //var errorCodes:ErrorCodes = new ErrorCodes();
+          this.searchUtils.status = this.errorCodes.DONE;
           if(this.searchUtils.totalResults == 0 ){
-            this.searchUtils.status = errorCodes.NONE;
+            this.searchUtils.status = this.errorCodes.NONE;
           }
 
           this.requestComplete.complete();
       },
       err => {
-          this.requestComplete.complete();
           console.log(err);
+          console.info("status: "+err.status);
            //TODO check erros (service not available, bad request)
           // if( ){
           //   this.searchUtils.status = ErrorCodes.ERROR;
           // }
-          var errorCodes:ErrorCodes = new ErrorCodes();
-          this.searchUtils.status = errorCodes.ERROR;
+          //var errorCodes:ErrorCodes = new ErrorCodes();
+          //this.searchUtils.status = errorCodes.ERROR;
+          if(err.status == '404') {
+            this.searchUtils.status = this.errorCodes.NOT_FOUND;
+          } else if(err.status == '500') {
+            this.searchUtils.status = this.errorCodes.ERROR;
+          } else {
+            this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+          }
+
+          this.requestComplete.complete();
       }
   );
 }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/tabPaging.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/tabPaging.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/tabPaging.component.ts	(revision 49174)
@@ -0,0 +1,24 @@
+import {Component, Input, Output, EventEmitter} from '@angular/core';
+
+@Component({
+    selector: 'tabPaging',
+    template: `
+        <div class="uk-panel" *ngIf="!showAll && length > 10">
+            <a (click)="changeShowAll.emit({value: true});">
+                <div class="uk-float-right">view all {{length}}</div>
+            </a>
+        </div>
+    `
+    })
+
+export class TabPagingComponent {
+    @Input() showAll: boolean;
+    @Input() length: number;
+    @Output() changeShowAll: EventEmitter<any> = new EventEmitter();
+
+    constructor () {
+    }
+
+    ngOnInit() {
+    }
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/landing.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/landing.module.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/landing.module.ts	(revision 49174)
@@ -0,0 +1,28 @@
+/* This module contains all common components for all landing pages */
+
+import { NgModule}            from '@angular/core';
+import { CommonModule }        from '@angular/common';
+import { FormsModule }         from '@angular/forms';
+import { RouterModule } from '@angular/router';
+
+import {TabPagingComponent} from './tabPaging.component';
+import {ShowTitleComponent} from './showTitle.component';
+import {AddThisComponent} from './addThis.component';
+import {PiwikServiceModule} from '../../utils/piwik/piwikService.module';
+import {PreviousRouteRecorder} from'../../utils/piwik/previousRouteRecorder.guard';
+
+@NgModule({
+  imports: [
+    CommonModule, FormsModule, RouterModule, PiwikServiceModule
+  ],
+  declarations: [
+      TabPagingComponent,  ShowTitleComponent, AddThisComponent
+  ],
+  providers:[
+    PreviousRouteRecorder
+   ],
+  exports: [
+     TabPagingComponent, ShowTitleComponent, AddThisComponent
+    ]
+})
+export class LandingModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/searchingProjectsInTab.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/searchingProjectsInTab.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/searchingProjectsInTab.component.ts	(revision 49174)
@@ -0,0 +1,122 @@
+import {Component, Input} from '@angular/core';
+import {ActivatedRoute} from '@angular/router';
+
+import { FetchProjects } from '../../utils/fetchEntitiesClasses/fetchProjects.class';
+import { SearchProjectsService } from '../../services/searchProjects.service';
+
+import {OpenaireProperties, ErrorCodes} from '../../utils/properties/openaireProperties';
+import {StringUtils} from '../../utils/string-utils.class';
+import {RouterHelper} from '../../utils/routerHelper.class';
+
+@Component({
+    selector: 'searchingProjectsTab',
+    template: `
+        <!--div *ngIf="fetchProjects.searchUtils.totalResults == 0" class = "uk-alert">
+            No projects available
+        </div-->
+        <!--div *ngIf="fetchProjects.searchUtils.status == errorCodes.NONE" class="uk-alert uk-alert-primary uk-animation-fade" role="alert">No projects available</div>
+        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.ERROR" class="uk-alert uk-alert-warning uk-animation-fade" role="alert">An Error Occured</div>
+        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger uk-animation-fade" role="alert">Service not available</div>
+        <div *ngIf="fetchProjects.searchUtils.status == errorCodes.LOADING" class="uk-animation-fade uk-margin-large-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div-->
+        <errorMessages [status]="[fetchProjects.searchUtils.status]" [type]="'projects'"></errorMessages>
+
+        <div *ngIf="fetchProjects.searchUtils.totalResults > 0">
+            <div class = "uk-text-right" *ngIf = "fetchProjects.searchUtils.totalResultsNoFilters > 10">
+                <a  [queryParams]="routerHelper.createQueryParams(['organization', 'or'], [organizationId, 'and'])"
+                    routerLinkActive="router-link-active" [routerLink]="linkToSearchProjects" class="uk-button uk-button-text">
+                    View all {{fetchProjects.searchUtils.totalResultsNoFilters}} results
+                </a>
+			      </div>
+            <div class= "searchPaging uk-panel uk-margin-top">
+              <div class="uk-clearfix">
+                <div class="uk-float-right" *ngIf="fetchProjects.results  && fetchProjects.searchUtils.totalResults > fetchProjects.searchUtils.size">
+                  <paging-no-load [currentPage]="page" [totalResults]="fetchProjects.searchUtils.totalResults" [term]="keyword" [size]="size"  (pageChange)="pageChange($event)"> </paging-no-load>
+                </div>
+              </div>
+              <ul  *ngIf = "fetchProjects.funders.length > 1" class="uk-list uk-list-divider uk-margin-remove">
+                <li  *ngFor="let filter of fetchProjects.filters "  >
+                    <!--div class="text-bold">Filter by {{filter.title}}:</div-->
+                    <span *ngFor = "let value of filter.values"  class = "uk-animation-fade">
+                       <input [(ngModel)]="value.selected" type="checkbox"  (ngModelChange)="filterChange(value.selected)" />
+                       <span title = "{{value.name}}"> {{value.name}}</span><span *ngIf = "showResultCount === true" > ({{value.number}})</span>
+                    </span>
+                </li>
+
+                <li *ngIf = "fetchProjects.searchUtils.totalResults !=fetchProjects.searchUtils.totalResultsNoFilters "> Filtered {{fetchProjects.searchUtils.totalResults}} results of {{fetchProjects.searchUtils.totalResultsNoFilters}} total results</li>
+                <li></li>
+              </ul>
+
+              <tab-result  [(results)]="fetchProjects.results" [(status)]= "fetchProjects.searchUtils.status"
+                            type="project" urlParam="projectId" [showLoading] = true [showOrganizations] = false>
+              </tab-result>
+            </div>
+        </div>
+    `
+})
+
+export class SearchingProjectsTabComponent {
+    @Input() fetchProjects : FetchProjects;
+    @Input()  organizationId:string = "";
+    public page :number = 1;
+    public size :number = 10;
+    public linkToSearchProjects: string;
+
+    public routerHelper:RouterHelper = new RouterHelper();
+    public errorCodes:ErrorCodes = new ErrorCodes();
+
+    private filterQuery:string = "";
+
+    constructor (private  route: ActivatedRoute,
+                 private _searchProjectsService: SearchProjectsService) {
+    }
+
+
+    ngOnInit() {
+
+            if(this.organizationId) {
+                this.linkToSearchProjects = OpenaireProperties.getLinkToAdvancedSearchProjects();//+"?organization="+this.organizationId+"or=and";;
+                if(this.fetchProjects.searchUtils.totalResults > 0) {
+                  this.search(false,"");
+                }
+            }
+    }
+
+
+    private search(refine:boolean, filterQuery:string){
+      var refineFields:string [] = ["funder"];
+      this.fetchProjects.getResultsForOrganizations(this.organizationId, filterQuery, this.page, this.size,(refine)?refineFields:[]);
+    }
+
+    public pageChange($event) {
+      this.page=$event.value;
+      this.search(false, this.filterQuery);
+    }
+
+    public filterChange($event) {
+      console.log("Filter Changed");
+      this.updateFilters();
+      //this.search(true, this.filterQuery);
+      this.search(false, this.filterQuery);
+    }
+
+    private updateFilters (){
+      this.filterQuery = "";
+      for (let filter of this.fetchProjects.filters){
+        var filterLimits="";
+        for (let value of filter.values){
+            if(value.selected == true){
+              //filterLimits+=((filterLimits.length == 0)?'':',') +'"'+ StringUtils.URIEncode(value.id)+'"';
+              filterLimits+=((filterLimits.length == 0)?'':' or ')+filter.filterId+' exact ';
+              filterLimits+='"'+ StringUtils.URIEncode(value.id)+'"';
+             }
+        }
+        if(filterLimits.length > 0){
+          //this.filterQuery+=' and '+filter.filterId + ' exact '+ filterLimits + ' ';
+          this.filterQuery+=' and ( ' + filterLimits + ' ) ';
+        }
+
+      }
+      console.log("Filter Changed"+this.filterQuery);
+
+    }
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/tabTable.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/tabTable.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/tabTable.component.ts	(revision 49174)
@@ -0,0 +1,93 @@
+import {Component, Input} from '@angular/core';
+import {RouterHelper} from '../../utils/routerHelper.class';
+import {OpenaireProperties} from '../../utils/properties/openaireProperties';
+//import {PagingModule} from '../utils/paging.module';
+
+@Component({
+    selector: 'tabTable',
+    template: `
+        <div *ngIf="info && info.length > pageSize" class="uk-margin">
+          <span class="uk-text-bold">{{info.length}} research results, page {{page}} of {{totalPages(info.length)}}</span>
+          <paging-no-load class="uk-float-right" [currentPage]="page" [totalResults]="info.length" [size]="pageSize" (pageChange)="updatePage($event)"></paging-no-load>
+        </div>
+
+        <table class="uk-table">
+            <!--thead>
+                <tr>
+                    <th>Title</th>
+                    <th width="20%">Trust</th>
+                </tr>
+            </thead-->
+            <tbody>
+                <tr *ngFor="let item of info.slice((page-1)*pageSize, page*pageSize)" class="{{item['class']}}">
+                    <td *ngIf="item != undefined">
+                        <!--span *ngIf="item['class'] == 'dataset'" class="glyphicon glyphicon-star" aria-hidden="true"-->
+                        <img *ngIf="item['class'] == 'publication'" class= "entityIcon" src="assets/publication.png" alt="(Publication)">
+                        <img *ngIf="item['class'] == 'dataset'" class= "entityIcon" src="assets/dataset.png" alt="(Dataset)">
+
+                        <!--/span-->
+                        <!--a *ngIf="item['url'] != '' && item['name'] != ''" href="{{item['url']}}"-->
+                        <a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'dataset'"
+                            [queryParams]="{datasetId: item.id}" routerLinkActive="router-link-active" routerLink="/search/dataset">
+                                {{item['name']}}
+                        </a>
+
+                        <a *ngIf="item['id'] != '' && item['name'] != '' && item['class'] == 'publication'"
+                            [queryParams]="{articleId: item.id}" routerLinkActive="router-link-active" routerLink="/search/publication">
+                        <!--a *ngIf="item['url'] != '' && item['name'] != '' && item['class'] == 'publication'"
+                            href="http://astero.di.uoa.gr:3000/search/publication?articleId={{item['id']}}"-->
+
+                                {{item['name']}}
+                        </a>
+
+                        <p *ngIf="item['id'] == '' && item['name'] != ''">{{item['name']}}</p>
+                        <span *ngIf="item['date'] != ''">
+                            ({{item['date']}})
+                        </span>
+                    </td>
+                    <td>
+                        <div *ngIf="item['trust'] != ''"  title="{{item['trust']}}%" >
+                            <div class="uk-text-center">{{item['trust']}}%</div>
+                            <progress class="uk-progress uk-margin-remove" value="{{item['trust']}}" max="100"></progress>
+                         </div>
+                        <div *ngIf="item['trust'] == ''">
+                            <p>No trust available</p>
+                        </div>
+                    </td>
+                </tr>
+            </tbody>
+        </table>
+    `
+
+    })
+
+export class TabTableComponent {
+    @Input() info: { "name": string, "url": string, "date": string, "trust": number}[];//Map<string, string[]>;
+
+    public routerHelper:RouterHelper = new RouterHelper();
+    public searchLinkToPublication: string;
+    public searchLinkToDataset: string;
+
+    public page: number = 1;
+    public pageSize: number = 10;
+
+    constructor () {
+    }
+
+    ngOnInit() {
+        this.searchLinkToPublication = OpenaireProperties.getsearchLinkToPublication();
+        this.searchLinkToDataset = OpenaireProperties.getsearchLinkToDataset();
+    }
+
+    totalPages(totalResults: number): number {
+      let totalPages:any = totalResults/this.pageSize;
+      if(!(Number.isInteger(totalPages))) {
+          totalPages = (parseInt(totalPages, this.pageSize) + 1);
+      }
+      return totalPages;
+    }
+
+    updatePage($event) {
+      this.page = $event.value;
+    }
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/metrics.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/metrics.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/metrics.component.ts	(revision 49174)
@@ -0,0 +1,224 @@
+import {Component, Input, Output, EventEmitter} from '@angular/core';
+import {Metrics} from '../../utils/entities/metrics';
+import {MetricsService } from '../../services/metrics.service';
+import {ErrorCodes} from '../../utils/properties/openaireProperties';
+
+import { Subscription }   from 'rxjs/Subscription';
+
+@Component({
+    selector: 'metrics',
+    template: `
+    <!--div *ngIf="i>0 && tab.content=='metricsTab' && metrics != undefined" class="uk-panel uk-padding uk-background-muted"-->
+    <!--/div-->
+
+    <!--dl *ngIf="metrics != undefined"
+        class="uk-description-list-horizontal uk-panel uk-padding uk-background-muted">
+        <dt *ngIf="type=='results'">Total Downloads: </dt>
+        <dt *ngIf="type!='results'" class="uk-text-break">
+            Total <span [innerHTML]="name"></span> Publication Downloads:
+        </dt>
+        <dd>{{metrics.totalDownloads}}</dd>
+        <dt>Total Views: </dt>
+        <dd>{{metrics.totalViews}}</dd>
+    </dl-->
+
+    <!--div *ngIf="metrics == undefined" class="uk-alert uk-alert-warning">
+        Metrics are currently unavailable
+    </div-->
+
+    <!--div *ngIf="status == errorCodes.LOADING" class="uk-animation-fade uk-margin-top  uk-width-1-1" role="alert"><img src="./assets/loading.gif" class="uk-align-center" alt="Loading"></div>
+    <div *ngIf="status == errorCodes.NONE" class="uk-alert uk-alert-primary" role="alert">No Results found</div>
+    <div *ngIf="status == errorCodes.ERROR" class="uk-alert uk-alert-warning" role="alert">An Error Occured</div>
+    <div *ngIf="status == errorCodes.NOT_AVAILABLE" class="uk-alert uk-alert-danger" role="alert">Service temprorarily unavailable. Please try again later.</div>
+    <div *ngIf="status == errorCodes.NOT_FOUND" class="uk-alert uk-alert-danger" role="alert">No metrics found</div-->
+    <errorMessages [status]="[status]" [type]="'metrics'"></errorMessages>
+    <div *ngIf="metrics != undefined" class="uk-child-width-1-3@m uk-grid-small uk-grid-match uk-grid" uk-grid="">
+        <div *ngIf="entityType == 'projects'" class="uk-width-1-1 uk-text-center uk-text-meta uk-margin">Project metrics are derived from aggregating individual research results metrics.</div>
+      <div class="metrics-openaire uk-first-column">
+          <div class="uk-tile uk-tile-default uk-padding-small">
+            <!--div class="uk-clearfix">
+                <div class="uk-float-left  " uk-tooltip="pos:right; delay:5"
+                      title='<div    class= "uk-margin uk-padding-small">
+                        <p>Info about the value....</p>
+                      </div>'><span class="uk-icon">
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" icon="info" ratio="1"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>
+</span>
+                </div>
+            </div-->
+            <div class="uk-text-center">{{pageViews}}</div>
+              <div class="uk-text-center">views in OpenAIRE</div>
+              <!--div  *ngIf="entityType!='results'" class="uk-text-center">Research results views  in OpenAIRE</div-->
+              <!--div class="uk-margin-top uk-article-meta">
+                <div *ngIf="entityType != 'results'">Research results page views in OpenAIRE</div>
+                <div *ngIf="entityType == 'results'">{{entity}} page views in OpenAIRE</div>
+              </div-->
+
+          </div>
+      </div>
+      <div class="metrics-views">
+          <div class="uk-tile uk-tile-muted uk-padding-small">
+              <!--div class="uk-clearfix">
+                  <div class="uk-float-left  " uk-tooltip="pos:right; delay:5"
+                        title='<div    class= "uk-margin uk-padding-small">
+                          <p>Info about the value....</p>
+                        </div>'><span class="uk-icon">
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" icon="info" ratio="1"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>
+</span>
+                  </div>
+              </div-->
+              <div class="uk-text-center">  {{metrics.totalViews}}
+              <span *ngIf="metrics.totalViews > 0 && metrics.totalOpenaireViews > 0">
+              ( {{metrics.totalOpenaireViews}} from OpenAIRE )
+              </span></div>
+              <div  class="uk-text-center">views in local repository</div>
+              <!--div  *ngIf="entityType!='results'" class="uk-text-center"> research results views in local repository</div-->
+              <!--div  *ngIf="type!='results'" class="uk-text-center">  Total <span [innerHTML]="name"></span> Research Results Views</div-->
+
+
+                <!--div class="uk-margin-top uk-article-meta">
+                  <div *ngIf="entityType == 'projects'">Research results page views in Repositories</div>
+                  <div *ngIf="entityType == 'datasources'">Research results page views in Repository</div>
+                  <div *ngIf="entityType == 'results'">{{entity}} page views in Repositories</div>
+                  <div *ngIf="entityType!='datasources' && metrics.totalOpenaireViews > 0">
+                    Of the {{metrics.totalViews}} views, repositories accessed {{metrics.totalOpenaireViews}} time(s) from OpenAIRE
+                  </div>
+                  <div *ngIf="entityType=='datasources' && metrics.totalOpenaireViews > 0">
+                    Of the {{metrics.totalViews}} views, repository accessed {{metrics.totalOpenaireViews}} time(s) from OpenAIRE
+                  </div>
+                </div-->
+          </div>
+      </div>
+      <div class="metrics-downloads">
+          <div class="uk-tile uk-tile-primary uk-padding-small">
+              <!--div class="uk-clearfix">
+                  <div class="uk-float-left  " uk-tooltip="pos:right; delay:5"
+                        title='<div    class= "uk-margin uk-padding-small">
+                          <p>Info about the value....</p>
+                        </div>'><span class="uk-icon">
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" icon="info" ratio="1"><path d="M12.13,11.59 C11.97,12.84 10.35,14.12 9.1,14.16 C6.17,14.2 9.89,9.46 8.74,8.37 C9.3,8.16 10.62,7.83 10.62,8.81 C10.62,9.63 10.12,10.55 9.88,11.32 C8.66,15.16 12.13,11.15 12.14,11.18 C12.16,11.21 12.16,11.35 12.13,11.59 C12.08,11.95 12.16,11.35 12.13,11.59 L12.13,11.59 Z M11.56,5.67 C11.56,6.67 9.36,7.15 9.36,6.03 C9.36,5 11.56,4.54 11.56,5.67 L11.56,5.67 Z"></path><circle fill="none" stroke="#000" stroke-width="1.1" cx="10" cy="10" r="9"></circle></svg>
+</span>
+                  </div>
+              </div-->
+              <div class="uk-text-center">  {{metrics.totalDownloads}}
+              <span *ngIf="metrics.totalDownloads > 0 && metrics.totalOpenaireDownloads > 0">
+              ( {{metrics.totalOpenaireDownloads}} from OpenAIRE )
+              </span></div>
+              <div class="uk-text-center">downloads in local repository</div>
+              <!--div  *ngIf="entityType!='results'" class="uk-text-center">research results downloads in local repository</div-->
+              <!--div *ngIf="type!='results'" class="uk-text-center">Total <span [innerHTML]="name"></span> Research Results Downloads</div-->
+
+
+                <!--div class="uk-margin-top uk-article-meta">
+                  <div *ngIf="entityType == 'projects'">Research results page downloads in Repositories</div>
+                  <div *ngIf="entityType == 'datasources'">Research results page downloads in Repository</div>
+                  <div *ngIf="entityType == 'results'">{{entity}} page downloads in Repositories</div>
+                  <div *ngIf="entityType!='datasources' && metrics.totalOpenaireDownloads > 0">
+                    Of the {{metrics.totalDownloads}} downloads, repositories accessed {{metrics.totalOpenaireDownloads}} time(s) from OpenAIRE
+                  </div>
+                  <div *ngIf="entityType=='datasources' && metrics.totalOpenaireDownloads > 0">
+                    Of the {{metrics.totalDownloads}} downloads, repository accessed {{metrics.totalOpenaireDownloads}} time(s) from OpenAIRE
+                  </div>
+                </div-->
+
+          </div>
+      </div>
+
+  </div>
+
+<p *ngIf="metrics != undefined && metrics.infos.size > 0" >The information is available from the following content providers: </p>
+    <table *ngIf="metrics != undefined && metrics.infos.size > 0"
+            class="uk-table uk-table-striped">
+        <thead>
+            <tr>
+                <th class="uk-text-center uk-text-bold">From</th>
+                <th class="uk-text-center  uk-text-bold">Number Of Views</th>
+                <th class="uk-text-center  uk-text-bold">Number Of Downloads</th>
+            </tr>
+        </thead>
+        <tbody>
+            <tr *ngFor="let key of metrics.infos.keys()">
+                <td class="uk-text-center">
+                    <a href="{{metrics.infos.get(key).url}}">
+                        {{metrics.infos.get(key).name}}
+                    </a>
+                </td>
+                <td class="uk-text-center">
+                    {{metrics.infos.get(key).numOfViews}}
+                    <span *ngIf="metrics.infos.get(key).numOfViews > 0 && metrics.infos.get(key).openaireViews > 0">
+                      ( {{metrics.infos.get(key).openaireViews}} from OpenAIRE )
+                    </span>
+                </td>
+                <td class="uk-text-center">
+                    {{metrics.infos.get(key).numOfDownloads}}
+                    <span *ngIf="metrics.infos.get(key).numOfDownloads > 0 && metrics.infos.get(key).openaireDownloads > 0">
+                      ( {{metrics.infos.get(key).openaireDownloads}} from OpenAIRE )
+                    </span>
+                </td>
+            </tr>
+        </tbody>
+    </table>
+    `
+    })
+
+export class MetricsComponent {
+    @Output() metricsResults = new EventEmitter();
+    @Input() id: string;
+    @Input() entityType: string;
+    @Input() entity: string;
+    //@Input() name: string = "";
+    @Input() pageViews: number = 0;
+
+    public metrics: Metrics;
+    public errorCodes:ErrorCodes;
+    private sub: Subscription;
+
+    public status: number;
+
+    constructor (private _metricsService: MetricsService) {}
+
+    ngOnInit() {
+        this.errorCodes = new ErrorCodes();
+        this.status = this.errorCodes.LOADING;
+        this.getMetrics();
+    }
+
+    ngOnDestroy() {
+        this.sub.unsubscribe();
+    }
+
+    private getMetrics() {
+        //if(this.id == undefined || this.id == "") {
+        //    console.log("supplied id in metrics is not acceptable");
+        //}
+        //if(this.type == undefined || this.type == "") {
+        //    console.log("supplied id in metrics is not acceptable");
+        //}
+
+        this.sub = this._metricsService.getMetrics(this.id, this.entityType).subscribe(
+         data => {
+             this.metrics = data;
+             this.status = this.errorCodes.DONE;
+
+             this.metricsResults.emit({
+                 totalViews: this.metrics.totalViews,
+                 totalDownloads: this.metrics.totalDownloads,
+                 pageViews: this.metrics.pageViews
+             });
+         },
+         err => {
+           console.log(err);
+           if(err.status == '404') {
+             this.status = this.errorCodes.NOT_FOUND;
+           } else if(err.status == '500') {
+             this.status = this.errorCodes.ERROR;
+           } else {
+             this.status = this.errorCodes.NOT_AVAILABLE;
+           }
+           this.metricsResults.emit({
+               totalViews: 0,
+               totalDownloads: 0
+           });
+         }
+       );
+    }
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showSubjects.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showSubjects.component.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/landingPages/landing-utils/showSubjects.component.ts	(revision 49174)
@@ -0,0 +1,54 @@
+import {Component, Input} from '@angular/core';
+
+@Component({
+    selector: 'showSubjects',
+    template: `
+        <div   *ngIf="subjects != undefined || otherSubjects != undefined || classifiedSubjects != undefined ">
+
+            <div *ngIf="(subjects != undefined && subjects.length > 0) ||
+                       (otherSubjects != undefined && otherSubjects.size > 0) ||
+                       (classifiedSubjects != undefined && classifiedSubjects.size > 0)">
+                <span class="uk-text-bold">Subject:</span>
+
+                <span *ngIf="subjects != undefined && subjects.length > 0"> {{subjects.join(" | ")}} </span>
+                <ul class="uk-list">
+                <li *ngIf="otherSubjects != undefined && otherSubjects.size > 0">
+                    <div *ngFor="let key of otherSubjects.keys()">
+                        <span class="uk-text-bold">{{key}}:</span> {{otherSubjects.get(key).join(" | ")}}
+                    </div>
+                </li>
+                <li *ngIf="(subjects == undefined || subjects.length == 0) &&
+                           (otherSubjects == undefined || otherSubjects.size == 0) &&
+                           classifiedSubjects != undefined && classifiedSubjects.size > 0">
+                    -
+                </li>
+                </ul>
+            </div>
+
+            <div *ngIf="classifiedSubjects != undefined && classifiedSubjects.size > 0">
+                <div class="uk-panel uk-padding-small uk-background-muted"  >
+                    <div *ngFor="let key of classifiedSubjects.keys()">
+                        <span class="uk-text-bold">Classified by OpenAIRE into</span>
+                        <div>
+                            <span class="uk-text-bold">{{key}}:</span> {{classifiedSubjects.get(key).join(" | ")}}
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    `
+
+    })
+
+export class ShowSubjectsComponent {
+    @Input() subjects: string[];
+    @Input() otherSubjects: Map<string, string[]>;
+    @Input() classifiedSubjects: Map<string, string[]>;
+    // private showClassifiedSbj: boolean = false;
+
+    constructor () {
+    }
+
+    ngOnInit() {
+    }
+}
Index: modules/uoa-services-portal/trunk/portal-2/src/app/utils/properties/openaireProperties.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/utils/properties/openaireProperties.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/utils/properties/openaireProperties.ts	(revision 49174)
@@ -375,4 +375,5 @@
   public ERROR = 3;
   public NOT_AVAILABLE = 4;
   public OUT_OF_BOUND = 5;
+  public NOT_FOUND = 6;
 }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/utils/errorMessages.module.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/utils/errorMessages.module.ts	(nonexistent)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/utils/errorMessages.module.ts	(revision 49174)
@@ -0,0 +1,19 @@
+import { NgModule }            from '@angular/core';
+import { CommonModule }        from '@angular/common';
+import { FormsModule }         from '@angular/forms';
+
+import {ErrorMessagesComponent} from './errorMessages.component';
+
+
+@NgModule({
+  imports: [
+    CommonModule, FormsModule
+  ],
+  declarations: [
+     ErrorMessagesComponent
+  ],
+  exports: [
+      ErrorMessagesComponent
+    ]
+})
+export class ErrorMessagesModule { }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchOrganizations.class.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchOrganizations.class.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchOrganizations.class.ts	(revision 49174)
@@ -3,6 +3,8 @@
  import {SearchUtilsClass } from '../../searchPages/searchUtils/searchUtils.class';
 
 export class FetchOrganizations {
+  private errorCodes: ErrorCodes;
+
   public results =[];
 
   public searchUtils:SearchUtilsClass = new SearchUtilsClass();
@@ -13,8 +15,8 @@
 
   constructor ( private _searchOrganizationsService: SearchOrganizationsService ) {
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   }
 
@@ -35,8 +37,8 @@
         parameters = "q=" + keyword;
       }
 
-       var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
       this.subResults = this._searchOrganizationsService.searchOrganizations(parameters, null, page, size, []).subscribe(
           data => {
@@ -44,10 +46,10 @@
               console.info("search Organizations: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
            },
           err => {
@@ -56,8 +58,16 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
            }
       );
     }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchDataproviders.class.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchDataproviders.class.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/utils/fetchEntitiesClasses/fetchDataproviders.class.ts	(revision 49174)
@@ -3,6 +3,8 @@
 import {SearchUtilsClass } from '../../searchPages/searchUtils/searchUtils.class';
 
 export class FetchDataproviders {
+  private errorCodes: ErrorCodes;
+
   public results =[];
   public searchUtils:SearchUtilsClass = new SearchUtilsClass();
   public sub: any; public subResults: any;
@@ -14,8 +16,8 @@
 
 
   constructor ( private _searchDataprovidersService: SearchDataprovidersService ) {
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status =errorCodes.LOADING;
+    this.errorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
    }
 
 
@@ -34,8 +36,8 @@
       parameters = "q=" + keyword;
     }
 
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
 
     this.subResults = this._searchDataprovidersService.searchDataproviders(parameters,null, page, size,[]).subscribe(
@@ -44,10 +46,10 @@
             console.info("search Content Providers: [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
             this.results = data[1];
 
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //ar errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
         },
         err => {
@@ -56,15 +58,22 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
         }
     );
   }
 
   public getNumForEntity(entity: string, id:string) {
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
       if(id != "" && entity != "") {
 
@@ -72,10 +81,10 @@
               data => {
                   this.searchUtils.totalResults = data;
 
-                  var errorCodes:ErrorCodes = new ErrorCodes();
-                  this.searchUtils.status = errorCodes.DONE;
+                  //var errorCodes:ErrorCodes = new ErrorCodes();
+                  this.searchUtils.status = this.errorCodes.DONE;
                   if(this.searchUtils.totalResults == 0 ){
-                    this.searchUtils.status = errorCodes.NONE;
+                    this.searchUtils.status = this.errorCodes.NONE;
                   }
               },
               err => {
@@ -84,8 +93,15 @@
                   // if( ){
                   //   this.searchUtils.status = ErrorCodes.ERROR;
                   // }
-                  var errorCodes:ErrorCodes = new ErrorCodes();
-                  this.searchUtils.status = errorCodes.ERROR;
+                  //var errorCodes:ErrorCodes = new ErrorCodes();
+                  //this.searchUtils.status = errorCodes.ERROR;
+                  if(err.status == '404') {
+                    this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                  } else if(err.status == '500') {
+                    this.searchUtils.status = this.errorCodes.ERROR;
+                  } else {
+                    this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                  }
               }
           );
       }
@@ -92,16 +108,16 @@
   }
 
   public getNumForSearch(keyword: string) {
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
       this._searchDataprovidersService.numOfSearchDataproviders(keyword).subscribe(
           data => {
               this.searchUtils.totalResults = data;
-              this.searchUtils.status = errorCodes.DONE;
+              this.searchUtils.status = this.errorCodes.DONE;
 
               if(this.searchUtils.totalResults == 0) {
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -110,15 +126,22 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
 
 public getResultsForDeposit(id:string, type:string, page: number,  size: number){
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
 
   if(id != "") {
 
@@ -128,10 +151,10 @@
               console.info("search Dataproviders forDeposit: [id:"+id+", type:"+type+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -140,15 +163,22 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
   }
 }
 public getResultsBySubjectsForDeposit(subject:string, type:string, page: number,  size: number){
-    var errorCodes:ErrorCodes = new ErrorCodes();
-    this.searchUtils.status = errorCodes.LOADING;
+    //var errorCodes:ErrorCodes = new ErrorCodes();
+    this.searchUtils.status = this.errorCodes.LOADING;
       this._searchDataprovidersService.searchDataProvidersBySubjects(subject,type, page, size).subscribe(
           data => {
               this.searchUtils.totalResults = data[0];
@@ -155,10 +185,10 @@
               console.info("search Dataproviders forDeposit: [subject:"+subject+", type:"+type+" ]  [total results:"+this.searchUtils.totalResults+"]");
               this.results = data[1];
 
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.DONE;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              this.searchUtils.status = this.errorCodes.DONE;
               if(this.searchUtils.totalResults == 0 ){
-                this.searchUtils.status = errorCodes.NONE;
+                this.searchUtils.status = this.errorCodes.NONE;
               }
           },
           err => {
@@ -167,15 +197,22 @@
               // if( ){
               //   this.searchUtils.status = ErrorCodes.ERROR;
               // }
-              var errorCodes:ErrorCodes = new ErrorCodes();
-              this.searchUtils.status = errorCodes.ERROR;
+              //var errorCodes:ErrorCodes = new ErrorCodes();
+              //this.searchUtils.status = errorCodes.ERROR;
+              if(err.status == '404') {
+                this.searchUtils.status = this.errorCodes.NOT_FOUND;
+              } else if(err.status == '500') {
+                this.searchUtils.status = this.errorCodes.ERROR;
+              } else {
+                this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+              }
           }
       );
 
 }
   public getResultsForEntity(entity:string, id:string, page: number, size: number){
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
     var parameters = "";
 
@@ -191,10 +228,10 @@
                 console.info("search Dataproviders for "+entity+": [Parameters:"+parameters+" ]  [total results:"+this.searchUtils.totalResults+"]");
                 this.results = data[1];
 
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.DONE;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                this.searchUtils.status = this.errorCodes.DONE;
                 if(this.searchUtils.totalResults == 0 ){
-                  this.searchUtils.status = errorCodes.NONE;
+                  this.searchUtils.status = this.errorCodes.NONE;
                 }
             },
             err => {
@@ -203,8 +240,15 @@
                 // if( ){
                 //   this.searchUtils.status = ErrorCodes.ERROR;
                 // }
-                var errorCodes:ErrorCodes = new ErrorCodes();
-                this.searchUtils.status = errorCodes.ERROR;
+                //var errorCodes:ErrorCodes = new ErrorCodes();
+                //this.searchUtils.status = errorCodes.ERROR;
+                if(err.status == '404') {
+                  this.searchUtils.status = this.errorCodes.NOT_FOUND;
+                } else if(err.status == '500') {
+                  this.searchUtils.status = this.errorCodes.ERROR;
+                } else {
+                  this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+                }
             }
         );
     }
@@ -211,8 +255,8 @@
   }
 
   public getResultsForDataproviders(id:string, page: number, size: number){
-      var errorCodes:ErrorCodes = new ErrorCodes();
-      this.searchUtils.status = errorCodes.LOADING;
+      //var errorCodes:ErrorCodes = new ErrorCodes();
+      this.searchUtils.status = this.errorCodes.LOADING;
 
     this._searchDataprovidersService.getDataProvidersforEntityRegistry(id, page, size).subscribe(
         data => {
@@ -220,10 +264,10 @@
             console.info("search Dataproviders for Entity Registry: [Id:"+id+" ]  [total results:"+this.searchUtils.totalResults+"]");
             this.results = data[1];
 
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.DONE;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            this.searchUtils.status = this.errorCodes.DONE;
             if(this.searchUtils.totalResults == 0 ){
-              this.searchUtils.status = errorCodes.NONE;
+              this.searchUtils.status = this.errorCodes.NONE;
             }
         },
         err => {
@@ -232,8 +276,15 @@
             // if( ){
             //   this.searchUtils.status = ErrorCodes.ERROR;
             // }
-            var errorCodes:ErrorCodes = new ErrorCodes();
-            this.searchUtils.status = errorCodes.ERROR;
+            //var errorCodes:ErrorCodes = new ErrorCodes();
+            //this.searchUtils.status = errorCodes.ERROR;
+            if(err.status == '404') {
+              this.searchUtils.status = this.errorCodes.NOT_FOUND;
+            } else if(err.status == '500') {
+              this.searchUtils.status = this.errorCodes.ERROR;
+            } else {
+              this.searchUtils.status = this.errorCodes.NOT_AVAILABLE;
+            }
         }
     );
   }
Index: modules/uoa-services-portal/trunk/portal-2/src/app/deposit/depositResult.component.ts
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/app/deposit/depositResult.component.ts	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/app/deposit/depositResult.component.ts	(revision 49174)
@@ -51,7 +51,7 @@
 
 
                 <div *ngIf="fetchDataproviders.searchUtils.totalResults > 0">
-                    <h2 *ngIf="organization != undefined">
+                    <h2 *ngIf="organization">
                         <span>content providers for institution: </span>
                         <a *ngIf="organization['url']!=''" href="{{organization.url}}" target="_blank">
                             <span>{{organization['name']}} (<i class="custom-external"></i>)</span>
@@ -86,8 +86,8 @@
 
 
                 <div *ngIf="(fetchDataproviders.searchUtils.totalResults == 0 && status == errorCodes.DONE)
-                            || status == errorCodes.NONE || status == errorCodes.ERROR" class = "alert alert-warning">
-                    <div *ngIf="organization != undefined">
+                            || status == errorCodes.NOT_FOUND || status == errorCodes.ERROR || status == errorCodes.NOT_AVAILABLE" class = "alert alert-warning">
+                    <div *ngIf="organization">
                         <span *ngIf="fetchDataproviders.searchUtils.status == errorCodes.ERROR">
                             An error occured.
                         </span>
@@ -98,12 +98,15 @@
                         <span *ngIf="organization['url']==''">{{organization['name']}}</span>
                         .
                     </div>
-                    <div *ngIf="status == errorCodes.NONE && organizationId != ''">
+                    <div *ngIf="status == errorCodes.NOT_FOUND && organizationId != ''">
                         No organization with ID: {{organizationId}} found.
                     </div>
                     <div *ngIf="status == errorCodes.ERROR && organizationId != ''">
                         An error occured.
                     </div>
+                    <span *ngIf="status == errorCodes.NOT_AVAILABLE && organizationId != ''">
+                        Service temprorarily unavailable. Please try again later.
+                    </span>
                     <div *ngIf="organizationId == ''">
                         No ID for organization.
                     </div>
@@ -123,6 +126,7 @@
         </div>
       </div>
     </div>
+
     `
 })
 
@@ -211,19 +215,26 @@
 
         this._organizationService.getOrganizationInfo(this.organizationId).subscribe(
             data => {
-                this.organization = (data && data.title)?data.title:"";
-                this.status = this.errorCodes.DONE;
-                this.searchDataproviders();
+                if(data == null) {
+                  this.status = this.errorCodes.NOT_FOUND;
+                } else {
+                  this.organization = data.title;
+                  this.status = this.errorCodes.DONE;
+                  this.searchDataproviders();
+                }
             },
             err => {
                 //console.log(err)
 
                 if(err.status == '404') {
-                    this.status = this.errorCodes.NONE;
-                    console.info("none");
+                  this.status = this.errorCodes.NOT_FOUND;
+                  console.info("not found");
+                } else if(err.status == '500') {
+                  this.status = this.errorCodes.ERROR;
+                  console.info("error");
                 } else {
-                    this.status = this.errorCodes.ERROR;
-                    console.info("error");
+                  this.status = this.errorCodes.NOT_AVAILABLE;
+                  console.info("not available");
                 }
             }
         );
Index: modules/uoa-services-portal/trunk/portal-2/src/assets/discover-custom.css
===================================================================
--- modules/uoa-services-portal/trunk/portal-2/src/assets/discover-custom.css	(revision 49173)
+++ modules/uoa-services-portal/trunk/portal-2/src/assets/discover-custom.css	(revision 49174)
@@ -86,6 +86,9 @@
 .search-results {
   min-height: 1100px;
 }
+.searchPaging {
+  min-height: 46px;
+}
 .other-results {
   min-height: 300px;
 }
