// JavaScript Document
/*--------------------------------------------------
  FileName : setouchi_utf8.js
  Author   : Setouchi Engineering Co.,Ltd.
--------------------------------------------------*/

/*--------------------------------------------------
  Function : rollover Image Preload
  Argument : image Tag(unique), normal image path, rollover image path
  Notes    : ロールオーバー用の画像イメージを先読みする
--------------------------------------------------*/
/* イメージ用配列 */
var arrayImage;
arrayImage = new Array;

function ImagePreload(tagID, src1, src2) {
  /* 引数チェック */
  if (ImagePreload.arguments.length != 3) {
    return false;
  }
  
  /* タグのインスタンスを生成 */
  var N = tagID;
  arrayImage[N] = new Image();
  
  /* 通常画像を保持 */
  arrayImage[N][0] = new Image();
  arrayImage[N][0].src = src1;
  /* ロールオーバー用画像を保持 */
  arrayImage[N][1] = new Image();
  arrayImage[N][1].src = src2;
  
  return true;
}

/*--------------------------------------------------
  Function : rollover Image
  Argument : image Tag(unique), rollover flag (0: normal / 1: rollover)
  Notes    : 先読みした画像をロールオーバーする
--------------------------------------------------*/
function ImageChange(tagID, srcFlag) {
  /* 引数チェック */
  if (ImageChange.arguments.length != 2) {
    return false;
  }
  if (srcFlag != 0 && srcFlag != 1) {
    return false;
  }
  
  document.images[tagID].src = arrayImage[tagID][srcFlag].src;
  
  return true;
}

/*--------------------------------------------------
  Function : Image load new window
  Argument : image path(relative or absolute), image width(px), image height(px)
  Notes    : 指定した画像を別ウィンドウ表示する
--------------------------------------------------*/
function ImageWinOpen(rPathImg, wlen, hlen) {
  /* 引数チェック */
  if (ImageWinOpen.arguments.length != 3) {
    return false;
  }
  
  /* 指定された画像を指定されたサイズで別ウィンドウ表示 */
  var NewWin = window.open("", "winImgOpen", "width=" + wlen + ",height=" + hlen + ",scrollbars=yes");
  NewWin.parent.location.href = rPathImg;
  
  var k = NewWin;
  
  k.focus();
}

/*--------------------------------------------------
  Function : view new window
  Argument : path(relative or absolute)
  Notes    : 指定したパスのリソースを現在の設定で別ウィンドウ表示する
--------------------------------------------------*/
function NewWinOpen(rPath) {
  /* 引数チェック */
  if (NewWinOpen.arguments.length != 1) {
    return false;
  }
  
  /* 指定されたリソースを別ウィンドウ表示 */
  /* 指定されない設定はIE以外ではno扱いになるので指定する */
  var NewWin = window.open("", "winOpen", "menubar=yes,toolbar=yes,location=yes,status=yes,scrollbars=yes,resizable=yes");
  NewWin.parent.location.href = rPath;
  
  var k = NewWin;
  
  k.focus();
}

/*--------------------------------------------------
  Function : view new window
  Argument : none
  Notes    : class属性に"popup"を指定することで別ウィンドウ表示を実行する。
             href属性に絶対パス指定のみ有効。prototype.js必須。
  SeeAlso  : http://akira-site.net/computer/archives/000414.html
--------------------------------------------------*/
function ViewNewWindow(){
  var PopupWindow = Class.create();
  
  PopupWindow.prototype = {
    initialize: function(className, parentElement) {
      var elements = document.getElementsByClassName(className, parentElement);
      
      for (var i = 0, len = elements.length; i < len; i++) {
        Event.observe(elements[i], 'click', this.addPopupEvent.bindAsEventListener(this));
        Event.observe(elements[i], 'keypress', this.addPopupEvent.bindAsEventListener(this));
      }
    },
    addPopupEvent: function(event) {
      var element = Event.element(event);
      var link = element.getAttribute('href');
      
      window.open(link);
      Event.stop(event);
    }
  };
  
  Event.observe(window, 'load', function () {
    new PopupWindow('popup');
  });
}

/*--------------------------------------------------
  Function : fix IE6 unsupported tag(s)
  Argument : none
  Notes    : IE6がサポートしないタグをIE6向けにする。
--------------------------------------------------*/
function fixIE6Tags(){
  /* IE7以降はパスする */
  if (typeof document.body.style.maxHeight != "undefined") { 
    /* IE 7 or later, mozilla, safari, opera 9 or later */
    return false;
  } else { 
    /* IE6, older browsers */
    /* abbrタグをacronymタグに置き換え */
    var abbrElements, abbrPart, m;

    abbrElements = document.getElementsByTagName("abbr");
    while(m = abbrElements.length){
      abbrPart = abbrElements.item(m - 1).parentNode;
      abbrPart.innerHTML = abbrPart.innerHTML.replace(/(<\/?)abbr/ig, '$1acronym');
    }
  } 
}

