/************************************************************************
  makeShadow - Make shadow onto the HTML elements with JavaScript
      Copyright (c) 2007 Piroli YUKARINOMIYA (MagicVox). Some rights reserved.
      @see http://www.magicvox.net/archive/2007/01201406/
************************************************************************/

/*** UA が Microsoft Internet Explorer の場合，true */
function makeShadow_isMSIE () {
  return (navigator.appName == 'Microsoft Internet Explorer')
}

/*** 指定された HTML オブジェクトにシャドーを適用する
* parent    シャドーを適用する HTML オブジェクト
* path      シャドー画像部品の格納されたパス。デフォルト値はカレントパス
* size      シャドー画像部品のサイズ。デフォルト値は 16px
*/
function makeShadowElement (parent, path, size) {
  // MSIE では動作しない
  if (makeShadow_isMSIE ()) return;
  if (! parent) return;

  /* Set default path for background image */
  if (! path) path = 'http://kayochiyo.info/kayochiyo_blog/js';
  /* Set default size of background image */
  if (! size) size = '16px';

  /* Setup parent element */
  parent.style.paddingRight
      = parent.style.paddingBottom
      = size;
  parent.style.position = 'relative';

  /* Create span element for glow */
  function makeGlowObj (params) {
    var _span = document.createElement ('span');
    _span.style.position = 'absolute';
    for (i in params)
      eval ('_span.style.' + i + ' = "' + params[i] +'"');
    return _span;
  }
  parent.appendChild (makeGlowObj ({ backgroundImage:"url('"+path+"/shadow_s.gif')", width:"100%", height:size, left:"0%", bottom:"0%" }));
  parent.appendChild (makeGlowObj ({ backgroundImage:"url('"+path+"/shadow_e.gif')", width:size, height:"100%", right:"0%", top:"0%" }));
  parent.appendChild (makeGlowObj ({ backgroundImage:"url('"+path+"/shadow_se.jpg')", width:size, height:size, bottom:"0%", right:"0%" }));
}

/***
* _class    シャドーを適用する HTML 要素のクラス名
* path      シャドー画像部品の格納されたパス。デフォルト値はカレントパス
* size      シャドー画像部品のサイズ。デフォルト値は 16px
*/
function makeShadowClass (_class, path, size) {
  // MSIE では動作しない
  if (makeShadow_isMSIE ()) return;
  if (! _class) return;
  var collection = document.getElementsByTagName ('*');
  for (var i = 0; i < collection.length; i++)
    if (collection[i].className == _class)
      makeShadowElement (collection[i], path, size);
}
