/*______________________________________

  publication.js #080320
  
  Script written by Mahiro Komura <mahirok@mizuyari.jp>
  http://mizuyari.jp/
______________________________________*/

var publication;
mizuyari.addOnLoadEvent(mizGlobal_publicationAppInit);

function mizGlobal_publicationAppInit() {
 publication = new publicationApp("publication");
}

function mizGlobal_XMLLoaded(obj) {
 publication.xmlLoaded(obj);
}

function publicationApp (self) {
 this.self = 'window.' + self;
 this.items  = null;
 this.itemListElmtId = 'publication-list';
 this.itemSets = ['set-exhibitions2010','set-exhibitions2005','set-exhibitions2000','set-exhibitions1995','set-collection','set-others']
 this.categories = ['企画展図録','所蔵作品図録','その他図録'];
 this.activeItemSetId = null;
 this.xmlURL = 'publication.xml';
 this.ready = false;
 this.getXML();
}

publicationApp.prototype = {
 
getXML : function(obj) {
 sendRequest(mizGlobal_XMLLoaded,'','GET',this.xmlURL,true,true);
},
 
xmlLoaded : function(obj) {
 this.items = obj.responseXML.getElementsByTagName("item");
 this.ready = true;
 this.printItems(0);
},

modifyActiveItemSet : function(itemSetId) {
 if (this.itemSetId != null) {
  mizuyari.removeClass(miz$(this.itemSets[this.itemSetId]),'active');
 }
 this.itemSetId = itemSetId;
 mizuyari.addClass(miz$(this.itemSets[this.itemSetId]),'active');
},

printItems : function(itemSetId) {
 if (!this.ready) return;
 var tCategory, tYear;
 var itemCount = 0;
 this.clearItemElements();
 this.modifyActiveItemSet(itemSetId);
 for (i=0; i<this.items.length; i++) {
  var tItem = this.items[i];
  if (!mizuyari.ua.isWinIE) {
   tCategory = tItem.getElementsByTagName("category")[0].textContent;
   tYear = tItem.getElementsByTagName("year")[0].textContent;
  } else {
   tCategory = tItem.getElementsByTagName("category")[0].text;
   tYear = tItem.getElementsByTagName("year")[0].text;
  }
  if ((itemSetId == null) ||
      (itemSetId == 0 && tCategory == this.categories[0] && tYear >= 2010) ||
      (itemSetId == 1 && tCategory == this.categories[0] && tYear <= 2009 && tYear >= 2005) ||
      (itemSetId == 2 && tCategory == this.categories[0] && tYear <= 2004 && tYear >= 2000) ||
      (itemSetId == 3 && tCategory == this.categories[0] && tYear <= 1999 && tYear >= 1995) ||
      (itemSetId == 4 && tCategory == this.categories[1]) ||
      (itemSetId == 5 && tCategory == this.categories[2])) {
   this.createItemElement(i);
   itemCount++;
  }
 }
},

clearItemElements : function() {
 miz$(this.itemListElmtId).innerHTML = "";
},

createItemElement : function(itemId) {
 function e$(tagName, idx) {
  if (!idx) idx = 0;
  if (!itemElmt.getElementsByTagName(tagName)[idx]) return "";
  var content = (!mizuyari.ua.isWinIE) ?
   itemElmt.getElementsByTagName(tagName)[idx].textContent : itemElmt.getElementsByTagName(tagName)[idx].text;
  return content;
 }

 var itemElmt = this.items[itemId];
 
 var newitemElement = document.createElement('div');
 newitemElement.setAttribute("id","item-" + itemId);
 newitemElement.setAttribute("class","item");
 newitemElement.setAttribute("className","item");

 // イメージブロック
 var newitemPics = document.createElement('div');
 newitemPics.setAttribute("class","pics");
 newitemPics.setAttribute("className","pics");
 var pic = e$('image');
 if (pic == "") pic = '/shared/images/noimage.gif';
 newitemPics.innerHTML = '<img src="' + pic + '" alt="【写真：' + e$('title').replace(/\x0D\x0A|\x0D|\x0A/g,"") +'】" />';

 // テキストブロック
 var newitemBodytext = document.createElement('div');
 newitemBodytext.setAttribute("class","bodytext");
 newitemBodytext.setAttribute("className","bodytext");

 // タイトル
 var newitemTitle = document.createElement('h4');
 var titleHTML = e$('title').replace(/\x0D\x0A|\x0D|\x0A/g,"<br />");
 var stockstatus = e$('stockstatus');
 var stockstatusHTML = "";
 if (stockstatus == "2") {
  stockstatusHTML = '<br /><strong class="stockstatus">※残部少</strong>';
 } else if (stockstatus == "3") {
  stockstatusHTML = '<br /><strong class="stockstatus">※売り切れました</strong>';
 }
 newitemTitle.innerHTML = titleHTML + stockstatusHTML;

 // 仕様
 var newitemSpec = document.createElement('p');
 newitemSpec.setAttribute("class","spec");
 newitemSpec.setAttribute("className","spec");
 newitemSpec.innerHTML = e$('year') + '年<br />' + e$('size') + ' ' + e$('pages') + ' ' + e$('weight') + 'g<br />' + e$('price') + '円';

 // 説明文
 var newitemDescription = document.createElement('p');
 newitemDescription.setAttribute("class","description");
 newitemDescription.setAttribute("className","description");
 newitemDescription.innerHTML = e$('description');

 newitemBodytext.appendChild(newitemTitle);
 newitemBodytext.appendChild(newitemSpec);
 newitemBodytext.appendChild(newitemDescription);

 newitemElement.appendChild(newitemPics);
 newitemElement.appendChild(newitemBodytext);

 miz$(this.itemListElmtId).appendChild(newitemElement);

}

}