/**
 *  ページオブジェクト
 */
function Page(title, subtitle, photo) {
  this.title         = title;       // ページタイトル
  this.subtitle      = subtitle;    // サブタイトル
  this.photo         = photo;       // トップページに表示されるページ毎の画像
  this.photoArray    = new Array(); // このページに属する公開可能な写真オブジェクトの配列
  this.photoArrayAll = new Array(); // このページに属する全ての写真オブジェクトの配列
  this.selectedPhoto = 0;           // 現在表示されている写真番号
}
// toStringメソッド
Page.prototype.toString = function() {
  return this.title + ' (' + this.subtitle + ') : has ' + this.photoArray.length + ' photo';
}

// photoArrayのgetter
Page.prototype.getPhotoArray = function() {
  return this.photoArray;
}
// photoArrayAllのgetter
Page.prototype.getPhotoArrayAll = function() {
  return this.photoArrayAll;
}
// photoArrayのgetter
Page.prototype.getPhoto = function(index) {
  return this.photoArray[index];
}

// getCurrentPhotoメソッド
Page.prototype.getCurrentPhoto = function() {
  return this.getPhoto(this.selectedPhoto);
}
// getPreviousPhotoメソッド(現在の写真位置は変更しない)
Page.prototype.getPreviousPhoto = function() {
  return (this.hasPreviousPhoto()) ? this.getPhoto(this.selectedPhoto-1) : this.getPhoto(this.selectedPhoto);
}
// getNextPhotoメソッド(現在の写真位置は変更しない)
Page.prototype.getNextPhoto = function() {
  return (this.hasNextPhoto()) ? this.getPhoto(this.selectedPhoto+1) : this.getPhoto(this.selectedPhoto);
}

// changePhotoメソッド
Page.prototype.changePhoto = function(index) {
  this.selectedPhoto = index;
}
// getPhotoCountメソッド
Page.prototype.getPhotoCount = function() {
  return this.getPhotoArray().length;
}

// 写真オブジェクト追加メソッド
Page.prototype.addPhoto = function(obj) {
  this.getPhotoArrayAll()[this.getPhotoArrayAll().length] = obj;
  if (obj.isActive()) {
    this.getPhotoArray()[this.getPhotoArray().length] = obj;
  }
}

// hasPreviousPhotoメソッド
Page.prototype.hasPreviousPhoto = function() {
  return (this.selectedPhoto > 0) ? true : false;
}
// hasNextPhotoメソッド
Page.prototype.hasNextPhoto = function() {
  return (this.selectedPhoto < (this.photoArray.length - 1)) ? true : false;
}
// previousPhotoメソッド(現在の写真位置も変更する)
Page.prototype.previousPhoto = function() {
  return (this.hasPreviousPhoto()) ? this.photoArray[--this.selectedPhoto] : this.photoArray[this.selectedPhoto];
}
// nextPhotoメソッド(現在の写真位置も変更する)
Page.prototype.nextPhoto = function() {
  return (this.hasNextPhoto()) ? this.photoArray[++this.selectedPhoto] : this.photoArray[this.selectedPhoto];
}
