/*
* magnum universal library
*
* writen by Magnum
*
* $Date: 2008-12-15$
*/

/* IE高速化  　　                                        */

/*@cc_on 
var doc = document;
eval('var document = doc');
@*/

var mag = {};

/* ブラウザ依存 　                                        */
mag.agent = {};
/* ブラウザ判定 */
mag.agent.ie = function(){
 return (navigator.appName.toLowerCase().indexOf('internet explorer')+1?1:0);
}

/* 各種エレメント取得 　                                        */
mag.get = {};

/* idエレメント取得 */
mag.get.id = function(id,parent){
 if(parent != null){
  return parent.getElementById(id);
 }else{
  return document.getElementById(id);
 }
}

/* nameエレメント取得 */
mag.get.name = function(name,parent){
 if(parent != null){
  return parent.getElementsByName(name);
 }else{
  return document.getElementsByName(name);
 }
}

/* tagエレメント取得 */
mag.get.tag = function(tag,parent){
 if(parent != null){
  return parent.getElementsByTagName(tag);
 }else{
  return document.getElementsByTagName(tag);
 }
}

/* classエレメント取得 */
mag.get.classname = function(classname,parent){
 if(!parent){
  parent = document.getElementsByTagName("body")[0];
 }
 var classelm = new Array();
 var reg = new RegExp('\\b'+classname+'\\b');
 var search = parent.getElementsByTagName("*");
 for(var i = 0,j = search.length;i < j;i++){
  if(reg.test(search[i].className)){
   classelm.push(search[i]);
  }
 }
 return classelm;
}

/* 最初のノード取得 */
mag.get.first = function(node){
 return node.firstChild;
}

/* 最後のノード取得 */
mag.get.last = function(node){
 return node.lastChild;
}

/* 各種エレメント生成 　                                        */
mag.make = {};

/* エレメント生成 */
mag.make.elm = function(elmName,id){
 var elm = document.createElement(elmName);
 if(id){
  elm.id = id;
 }
 return elm;
}

/* テキストノード生成 */
mag.make.txt = function(txt){
 return document.createTextNode(txt);
}

/* ボタン生成 　                                        */
mag.make.btn = function(val,mode,name,styles){
 var btn = mag.make.elm('INPUT');
 btn.type = mode;
 btn.value = val;
 btn.name = name;
 if(styles){
  btn.className = styles;
 }
 return btn;
}

/* 各種DOM操作 　                                        */
mag.dom = {};

/* 子ノード削除 */
mag.dom.removeChild = function(elm){
 if(elm != null){
  elm.parentNode.removeChild(elm);
 }
}

/* 全子ノード削除 */
mag.dom.removeChilds = function(node){
 while(node.hasChildNodes()){
  node.removeChild(node.lastChild);
 }
}

/* 全子ノード取得 */
mag.dom.getChilds = function(node){
 var i,inner,str;
 var array = new Array();
 if(!node){
  return array;
 }
 if(!node.hasChildNodes()){
  return array;
 };
 var children = node.childNodes;
 for(i = 0;i < children.length;i++){
  inner = children.item(i);
  if(inner.nodeType == 3){
   str = inner.nodeValue;
   if(!str.match('/[^\s\t\n\r]/')){
    continue;
   }
  }
  array.push(inner);
 }
 array.item = function(num){
  if(array[num]){
   return array[num];
  }else{
   return null;
  }
 }
 return array;
}

/* 一つ前の子ノード取得 */
mag.dom.getPrevious = function(node){
 var obj,pvs,str;
 if(!node){
  return null;
 }
 obj = node;
 while(pvs = obj.previousSibling){
  if(pvs.nodeType == 3){
   str = pvs.nodeValue;
   if(!str.match('/[^\s\t\n\r]/')){
    obj = pvs;
    continue;
   }
  }
  return pvs;
 }
 return null;
}

/* 一つ次の子ノード取得 */
mag.dom.getNext = function(node){
 var obj,nxt,str;
 if(!node){
  return null;
 }
 obj = node;
 while(nxt = obj.nextSibling){
  if(nxt.nodeType == 3){
   str = nxt.nodeValue;
   if(!str.match('/[^\s\t\n\r]/')){
    obj = nxt;
    continue;
   }
  }
  return nxt;
 }
 return null;
}

/* テキスト取得 */
mag.dom.getInnerTxt = function(node){
 var i,obj;
 var str = '';
 if(!node){
  return str;
 }
 if(typeof node.textContent != 'undefined'){
  str = node.textContent;
 }else if(typeof node.innerText != 'undefined'){
  str = node.innerText;
 }else if(node.hasChildNodes()){
  for(i = node.childNodes.length;i--;){
   obj = node.childNodes.item(i);
   if(obj.nodeType == 3){
    str = obj.nodeValue+str;
   }else{
    str = mag.dom.getInnerTxt(obj)+str;
   }
  }
 }
 return str;
}

/* エレメント置き換え */
mag.dom.replace = function(newelm,oldelm){
 if(oldelm != null){
  var parent = oldelm.parentNode;  
  parent.replaceChild(newelm,oldelm);
 }else{
  return false;
 }
}

/* エレメントコピー */                                
mag.dom.elmcopy = function(src,trg,func){
 if(mag.get.id(src) != null){
  var clone = mag.get.id(src).cloneNode(true);
 }
 clone.id = null;
 if(mag.get.id(trg) != null){
  mag.get.id(trg).appendChild(clone);
 }
 if(func){
  func();
 }
}

/* エレメント削除 */
mag.dom.elmremove = function(parent,limit,func){
 if(mag.get.id(parent) != null){
  var trgs = mag.dom.getChilds(mag.get.id(parent));
  if(trgs.length > limit){
   var trg = mag.get.last(mag.get.id(parent));
   mag.get.id(parent).removeChild(trg);
  }
 }
 if(func){
  func();
 }
}

/* update 2009.01.09 */

/* 最初に子ノード追加 */
mag.dom.insertfirst = function(elm,parent){
 if(parent && parent != null){
  parent.insertBefore(elm,parent.firstChild);
 }else{
  document.body.insertBefore(elm,document.body.firstChild);
 }
}

mag.dom.replace = function(newelm,oldelm){
 if(oldelm && oldelm != null){
  oldelm.parentNode.replaceChild(newelm,oldelm);
 }
}

/* 各種サイズ取得 　                                        */
mag.size = {};
/* スクリーンサイズ取得 */
mag.size.getScreen = function(){
 var val = new Object();
 if(window.screen){
  val.X = screen.availWidth;
  val.Y = screen.availHeight;
 }else{
  val.X = null;
  val.Y = null;
 }
 return val;
}

/* ウィンドウサイズ取得 */
mag.size.getWindow = function(){
 var obj = new Object();
 if(document.uniqueID){
  obj.X = document.documentElement.clientWidth;
  obj.Y = document.documentElement.clientHeight;
 }else{
  obj.X = window.innerWidth;
  obj.Y = window.innerHeight;
 }
 return obj;
};

/* ドキュメントサイズ取得 */
mag.size.getDocument = function(){
 var val = new Object();
 val.X = Math.max(document.documentElement.scrollWidth,document.body.scrollWidth);
 val.Y = Math.max(document.documentElement.scrollHeight,document.body.scrollHeight);
 return val;
}

/* スクロールサイズ取得 */
mag.size.getDocScroll = function(){
 var val = new Object();
 val.X = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
 val.Y  = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
 return val;
}

/* 各種座標取得 　                                        */
mag.pos = {};

/* エレメント座標取得 */
mag.pos.getElmPos = function(elm){
 var position = new Object();
 position.X = elm.offsetLeft;
 position.Y = elm.offsetTop;
 while(elm.offsetParent){
  elm = elm.offsetParent;
  position.X += elm.offsetLeft;
  position.Y += elm.offsetTop;
 }
 return position;
}

/* ポインタ座標取得 */
mag.pos.getMousePos = function(evt){
 var position = new Object();
 if(!evt){
  evt = window.event;
 }
 if(window.opera){
  position.X = evt.clientX;
  position.Y = evt.clientY;
 }else if(document.all){
  position.X = document.body.scrollLeft+event.clientX;
  position.Y = document.body.scrollTop+event.clientY;
 }else if(navigator.userAgent.indexOf('Safari') != -1){
  position.X = evt.pageX;
  position.Y = evt.pageY;
 }else{
  position.X = evt.pageX;
  position.Y = evt.pageY;
 }
 return position;
}

mag.pos.getOffsetPos = function(evt){
 var position = new Object();
 if(!evt){
  evt = window.event;
 }
 if(document.all){
  position.X = (evt.clientX+document.body.scrollLeft)-((evt.clientX+document.body.scrollLeft)-evt.srcElement.offsetLeft);
  position.Y = (evt.clientY+document.body.scrollTop)-((evt.clientY+document.body.scrollTop)-evt.srcElement.offsetTop);
 }else{
  position.X = (evt.clientX+document.body.scrollLeft)-((evt.clientX+document.body.scrollLeft)-evt.target.offsetLeft);
  position.Y = (evt.clientY+document.body.scrollTop)-((evt.clientY+document.body.scrollTop)-evt.target.offsetTop);
 }
 return position;
}

mag.pos.getBoxPos = function(evt){
 var position = new Object();
 if(!evt){
  evt = window.event;
 }
 if(document.all){
  position.X = evt.offsetX;
  position.Y = evt.offsetY;
 }else if(navigator.userAgent.indexOf('Safari') != -1){
  position.X = evt.offsetX;
  position.Y = evt.offsetY;
 }else{
  position.X = evt.layerX;
  position.Y = evt.layerY;
 }
 return position;
}

/* 各種イベント 　                                                */
mag.event = {};

/* イベント発生エレメント取得 */
mag.event.target = function(evt){
 if(!evt){
  evt = window.event;
 }
 if(evt && evt.target){
  if(evt.target.nodeType == 3){
   return evt.target.parentNode;
  }else{
   return evt.target;
  }
 }else if(evt && evt.srcElement){
  return evt.srcElement;
 }else{
  return null;
 }
}

/* イベント発生時関数登録 */
mag.event.addListener = function(elm,type,func){
 if(!elm){
  return false;
 }
 if(elm.addEventListener){
  elm.addEventListener(type,func,false);
 }else if(elm.attachEvent){
  elm.attachEvent('on'+type,func);
 }else{
  return false;
 }
 return true;
};

/* イベント発生時関数削除 */
mag.event.removeListener = function(elm,type,func){
 if(!elm){
  return false;
 }
 if(elm.removeEventListener){
  elm.removeEventListener(type,func,false);
 }else if(elm.detachEvent){
  elm.detachEvent('on'+type,func);
 }else{
  return false;
 }
 return true;
};

mag.event.dispatch = function(elm,type){
 if(elm.dispatchEvent){
  var evt = document.createEvent('MouseEvents');
  evt.initEvent(type,true,true);
  elm.dispatchEvent(evt);
 }else if(window.event){
  var evt = document.createEventObject();
  evt.button = 1;
  elm.fireEvent('on'+type,evt);
 }
}

/* デフォルトイベント抑止 */
mag.event.prevent = function(evt){
 if(evt && evt.preventDefault){
  evt.preventDefault();
  evt.currentTarget['on'+evt.type] = function(){
   return false;
  };
 }else if(window.event){
  window.event.returnValue = false;
 }
};

/* イベント伝播抑止 */
mag.event.stopevt = function(evt){
 if(evt && evt.stopPropagation){
  evt.stopPropagation();
 }else if(window.event){
  window.event.cancelBubble = true;
 }
}

/* Ajax 　                                                */
mag.ajax = {};

/* 非同期通信 */
mag.ajax.request = function(url,method,$key,func,res){
 var req;
 var response;
 try{
  req = new ActiveXObject("Msxml2.XMLHTTP");
 }catch(e){
  try{
   req = new ActiveXObject("Microsoft.XMLHTTP");
  }catch(e){
   req = false;
  }
 }
 if(!req && typeof XMLHttpRequest != "undefined"){
  req = new XMLHttpRequest();
 }
 if(req){
  req.onreadystatechange = function(){
   if(req.readyState == 4 && req.status == 200){
    if(res == 'txt'){
     response = req.responseText;
    }else if(res == 'xml'){
     response = req.responseXML;
    }
    func(response);
   }
  }
  req.open(method,url);
  req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
  req.send($key);
 }
}

/* 各種スタイル設定 　                                        */
mag.style = {};

/* CSSセレクタ取得 */
mag.style.selector = function(selector){
 var css = document.styleSheets;
 for(var i = 0;i < css.length;i++){
  if(css.item(i).cssRules){
   var rules = css.item(i).cssRules;
  }else if(css.item(i).rules){
   var rules = css.item(i).rules;
  }
  for(var k = 0;k < rules.length;k++){
   var rule = rules.item(k);
   var reg = new RegExp('^'+selector+'$','i');
   if(rule.selectorText && rule.selectorText.match(reg)){
    var style = rule.style;
    return style;
   }
  }
 }
}

/* CSSセレクタ追加 */
mag.style.insertrule = function(selector,value){
 var css = document.styleSheets[0];
 if(mag.agent.ie()){
  css.addRule(selector,value);
 }else{
  var styleText = selector+'{'+value+'}';
  css.insertRule(styleText,css.cssRules.length);
 }    
}

/* CSSセレクタ削除 */
mag.style.deleterule = function(index){
 var css = document.styleSheets[0];
 if(mag.agent.ie()){
  css.removeRule(index);
 }else{
  css.deleteRule(index);
 }    
}

/* 背景色チェンジャー */
mag.style.linecolorchanger = function(elm,color,child){
 if(!child){
  elm.style.backgroundColor = color;
 }else{
  var elms = mag.get.tag(child,elm);
  if(elms != null){
   for(var i = 0;i < elms.length;i++){
    elms.item(i).style.backgroundColor = color;
    if(mag.dom.getChilds(elms.item(i)) != null){
     var trgchild = mag.dom.getChilds(elms.item(i));
     for(var k = 0;k < trgchild.length;k++){
      trgchild.item(k).style.backgroundColor = color;
     }
    }
   }
  }
 }
}

/* heightタイマー　                                        */
var heighttrg = null;
var heightvalue = 0;
var heightrate = null;
var heightlimit = null;
var heightspd = null;
var heightfunc = null;

mag.style.heightchanger = function(){
 if(mag.get.id(heighttrg) != null){
  heightvalue = heightvalue+heightrate;
  if(heightvalue > heightlimit){
   mag.get.id(heighttrg).style.height = heightlimit+'px';
   clearTimeout(heighttimer);
   if(heightfunc != null){
    heightfunc();
   }
   mag.style.heightreset();
   return false;
  }else{
   mag.get.id(heighttrg).style.height = heightvalue+'px';
   var heighttimer = setTimeout(mag.style.heightchanger,heightspd);
  }
 }
}

mag.style.heightreset = function(){
 heighttrg = null;
 heightvalue = 0;
 heightrate = null;
 heightlimit = null;
 heightspd = null;
 heightfunc = null;
}

/* widthタイマー　                                        */
var widthtrg = null;
var widthvalue = 0;
var widthrate = null;
var widthlimit = null;
var widthspd = null;
var widthfunc = null;

mag.style.widthchanger = function(){
 if(mag.get.id(widthtrg) != null){
  widthvalue = widthvalue+widthrate;
  if(widthvalue > widthlimit){
   mag.get.id(widthtrg).style.width = widthlimit+'px';
   clearTimeout(widthtimer);
   if(widthfunc != null){
    widthfunc();
   }
   mag.style.widthreset();
   return false;
  }else{
   mag.get.id(widthtrg).style.width = widthvalue+'px';
   var widthtimer = setTimeout(mag.style.widthchanger,widthspd);
  }
 }
}

mag.style.widthreset = function(){
 widthtrg = null;
 widthvalue = 0;
 widthrate = null;
 widthlimit = null;
 widthspd = null;
 widthfunc = null;
}

/* alphaタイマー　                                        */
var alphatrg = null;
var alphavalue = 0;
var alpharate = null;
var alphalimit = null;
var alphaspd = null;
var alphafunc = null;

mag.style.alphadelay = function(){
 if(mag.get.id(alphatrg) != null){
  alphavalue = alphavalue+alpharate;
  if(alphavalue > alphalimit){
   mag.style.opacity(mag.get.id(alphatrg).style,alphalimit);
   clearTimeout(alphatimer);
   if(alphafunc != null){
    alphafunc();
   }
   mag.style.alphareset();
   return false;
  }else{
   mag.style.opacity(mag.get.id(alphatrg).style,alphavalue);
   var alphatimer = setTimeout(mag.style.alphadelay,alphaspd);
  }
 }
}

mag.style.alphareset = function(){
 alphatrg = null;
 alphavalue = 0;
 alpharate = null;
 alphalimit = null;
 alphaspd = null;
 alphafunc = null;
}

/* 透明度切り替え 　                                        */
mag.style.opacity = function(elm,val){
 elm.opacity = val/10;
 elm.MozOpacity = val/10;
 elm.filter = 'alpha(opacity='+(val*10)+')';
}

/* フルサイズ指定 　                                        */
mag.style.full = function(elm){
 elm.width = mag.size.getWindow().X+'px';
 elm.height = mag.size.getWindow().Y+'px';
}


/* センタリング指定 　                                        */
mag.style.center = function(elm,x,y){
 elm.position = 'absolute';
 if(mag.size.getDocScroll().Y > 0){
  elm.marginTop = -(y/2-(mag.size.getDocScroll().Y))-50+'px';
 }else{
  elm.marginTop = -(y/2)+'px';
 }
 elm.marginLeft = -(x/2)+'px';
}


mag.style.setcenter = function(elm){
 var w = mag.size.getWindow();
 var left = (w.X-elm.offsetWidth)/2;
 elm.style.left = parseInt(left)+'px';
 if(mag.size.getDocScroll().Y > 0){
  var top = ((w.Y+mag.size.getDocScroll().Y)-elm.offsetHeight)/2;
 }else{
  var top = (w.Y-elm.offsetHeight)/2;
 }
 elm.style.top = parseInt(top)+'px';
}

/* フォーム関連 　                                        */
mag.form = {};

/* 入力ガイド */
mag.form.helper = function(){
 var thunx = function(){
  if(mag.get.id('mailform') != null){
   var trg = mag.get.id('mailform');
   trg.action += '?mode=thunx';
  }
 }
 
 var setdefault = function(elm){
  if(elm.getAttribute('default') != null){
   if((elm.value.length == 0 || elm.value == elm.getAttribute('default')) && elm.getAttribute('default').length > 0){
    elm.value = elm.getAttribute('default');
    elm.style.color = '#888888';
   }
  }
 }
 var chkdefault = function(elm){
  if(elm.getAttribute('default') != null){
   if(elm.value == elm.getAttribute('default') && elm.getAttribute('default').length > 0){
    return true;
   }else{
    return false;
   }
  }else{
   return false;
  }
 } 
 var blur = function(evt){
  if(!evt){
   evt = window.event;
  }
  var trg = mag.event.target(evt);
  if(trg.getAttribute('default') != null){
   if(chkdefault(trg) == true || trg.value.length == 0){
    trg.value = trg.getAttribute('default');
    trg.style.color = '#888888';
   }
  }
 }  
 var focus = function(evt){
  if(!evt){
   evt = window.event;
  }
  var trg = mag.event.target(evt);
  if(chkdefault(trg) == true){
   trg.value = '';
   trg.style.color = '#000000';
  }
 }
 var submit = function(){
  var parent = mag.get.id('mailform');
  var trgs = mag.get.tag('INPUT',parent);
  for(var i = 0;i < trgs.length;i++){
   if(trgs.item(i).type == 'text'){
    if(chkdefault(trgs.item(i)) == true || trgs.item(i).value.length == 0){
     trgs.item(i).value = '';
    }
   }
  }
  var trgs = mag.get.tag('TEXTAREA',parent);
  for(var i = 0;i < trgs.length;i++){
   if(chkdefault(trgs.item(i)) == true || trgs.item(i).getAttribute('default').length == 0){
    trgs.item(i).value = '';
   }
  }
 }
 if(mag.get.id('mailform') != null){
  var parent = mag.get.id('mailform');
  var trgs = mag.get.tag('INPUT',parent);
  for(var i = 0;i < trgs.length;i++){
   if(trgs.item(i).type == 'text'){
    setdefault(trgs.item(i));
    mag.event.addListener(trgs.item(i),'focus',focus);
    mag.event.addListener(trgs.item(i),'blur',blur);
   }
  }
  var trgs = mag.get.tag('TEXTAREA',parent);
  for(var i = 0;i < trgs.length;i++){
    setdefault(trgs.item(i));
    mag.event.addListener(trgs.item(i),'focus',focus);
    mag.event.addListener(trgs.item(i),'blur',blur);
  }
  mag.event.addListener(parent,'submit',submit);
  if(mag.get.id('send') != null){
   mag.event.addListener(mag.get.id('send'),'click',thunx);
  }
 }
}

/* セレクトメニュー生成 */
mag.form.selection = function(){
 var over = function(evt){
  if(!evt){
   evt = window.event;
  }
  var src = mag.event.target(evt);
  src.style.backgroundColor = '#316AC5';
  src.style.color = '#FFFFFF';
  mag.event.prevent(evt);
 }
 var out = function(evt){
  if(!evt){
   evt = window.event;
  }
  var src = mag.event.target(evt);
  src.style.backgroundColor = '#FFFFFF';
  src.style.color = '#000000';
  mag.event.prevent(evt);
 }
 var getvalue = function(evt){
  if(!evt){
   evt = window.event;
  }
  var src = mag.event.target(evt);
  if(src.getAttribute('value') != null){
   var parent = src.parentNode.parentNode;
   var trgs = mag.get.classname('selections',parent);
   trgs[0].value = src.getAttribute('value');
   var trgs = mag.get.classname('options');
   for(var j = 0;j < trgs.length;j++){
    var parent = trgs[j].parentNode;
    trgs[j].style.display = 'none';
    var inputs = mag.get.classname('selections',parent);
    parent.style.height = inputs[0].offsetHeight+4+'px';
    var btn = mag.get.classname('arrow');
    for(var k = 0;k < btn.length;k++){
     if(inputs[0].getAttribute('options').length > 0){
      mag.event.removeListener(btn[k],'mousedown',none);
      mag.event.addListener(btn[k],'mousedown',block);
     }
    }
   }
   return;
  }else{
   return false;
  }
  mag.event.prevent(evt);
 }
 var none = function(evt){
  if(!evt){
   evt = window.event;
  }
  var src = mag.event.target(evt);
  var parent = src.parentNode;
  var trgs = mag.get.classname('options',parent);
  trgs[0].style.display = 'none';
  var inputs = mag.get.classname('selections',parent);
  parent.style.height = inputs[0].offsetHeight+4+'px';
  var btn = mag.get.classname('arrow');
  for(var k = 0;k < btn.length;k++){
   if(inputs[0].getAttribute('options').length > 0){
    mag.event.removeListener(btn[k],'mousedown',none);
    mag.event.addListener(btn[k],'mousedown',block);
   }
  }
  mag.event.prevent(evt);
 }
 var block = function(evt){
  if(!evt){
   evt = window.event;
  }
  var trgs = mag.get.classname('options');
  for(var j = 0;j < trgs.length;j++){
   var parent = trgs[j].parentNode;
   trgs[j].style.display = 'none';
   var inputs = mag.get.classname('selections',parent);
   parent.style.height = inputs[0].offsetHeight+4+'px';
  }
  var src = mag.event.target(evt);
  var parent = src.parentNode;
  var container = parent.parentNode;
  container.removeChild(parent);
  container.appendChild(parent);
  var trgs = mag.get.classname('options',parent);
  trgs[0].style.display = 'block';
  var inputs = mag.get.classname('selections',parent);
  var opts = mag.get.classname('options',parent);
  if(opts[0].offsetHeight <= 250){
   var height = inputs[0].offsetHeight+opts[0].offsetHeight;
   opts[0].style.height = opts[0].offsetHeight+'px';
  }else{
   var height = inputs[0].offsetHeight+250;
   opts[0].style.height = 250+'px';
  }
  parent.style.height = height+6+'px';
  var btn = mag.get.classname('arrow');
  for(var k = 0;k < btn.length;k++){
   if(inputs[0].getAttribute('options').length > 0){
    mag.event.removeListener(btn[k],'mousedown',block);
    mag.event.addListener(btn[k],'mousedown',none);
   }
  }
  mag.event.prevent(evt);
 }  
 var selections = mag.get.classname('selections');
 if(selections.length > 0){    
  for(var i = selections.length-1;i >= 0;i--){
   if(selections[i].getAttribute("options") != null && selections[i].getAttribute("options").length > 0){
    var inputparent = mag.make.elm('DIV');
    inputparent.className = 'inputparent';
    var select = selections[i].cloneNode(true);
    var inputX = selections[i].offsetWidth;
    var inputY = selections[i].offsetHeight;
    var top = selections[i].offsetTop;
    var left = selections[i].offsetLeft;
    inputparent.appendChild(select);
    var selectParent = mag.make.elm('DIV');
    selectParent.className = 'selectparent';
    selectParent.style.top = top+'px';
    selectParent.style.left = left+'px';
    selectParent.style.position = 'absolute';
    selectParent.appendChild(inputparent);
    var arrow = mag.make.elm('SPAN');
    arrow.appendChild(mag.make.txt("▼"));
    arrow.className = 'arrow';
    arrow.style.height = inputY+'px';     
    selectParent.appendChild(arrow);
    mag.dom.replace(selectParent,selections[i]);
    var width = inputX+arrow.offsetWidth;
    selectParent.style.width = width+'px';
    selectParent.style.height = inputY+'px';
    var clear = mag.make.elm('DIV');
    clear.className = 'clear';
    selectParent.appendChild(clear);
    var optparent = mag.make.elm('DIV');
    optparent.className = 'options';
    optparent.style.width = width+'px';          
    var options = selections[i].getAttribute('options').split(";");
    if(options.length > 0 && selections[i].getAttribute('options').length > 0){
     mag.event.addListener(arrow,'mousedown',block);
    }
    for(var k = 0;k < options.length;k++){
     if(options[k].length > 0){
      var opt = mag.make.elm('DIV');
      opt.className = 'option';
      opt.appendChild(mag.make.txt(options[k]));
      opt.setAttribute('value',options[k]);
      optparent.appendChild(opt);
      mag.event.addListener(opt,'mouseover',over);
      mag.event.addListener(opt,'mouseout',out);
      mag.event.addListener(opt,'mousedown',getvalue);
     }
    }
    selectParent.appendChild(optparent);   
   }
  }
 }
}

/* 都道府県コードコンバータ */
mag.form.pref2num = function(str){
 switch(str){
  case "北海道": str = "01"; break;
  case "青森県": str = "02"; break;
  case "岩手県": str = "03"; break;
  case "宮城県": str = "04"; break;
  case "秋田県": str = "05"; break;
  case "山形県": str = "06"; break;
  case "福島県": str = "07"; break;
  case "茨城県": str = "08"; break;
  case "栃木県": str = "09"; break;
  case "群馬県": str = "10"; break;
  case "埼玉県": str = "11"; break;
  case "千葉県": str = "12"; break;
  case "東京都": str = "13"; break;
  case "神奈川県": str = "14"; break;
  case "新潟県": str = "15"; break;
  case "富山県": str = "16"; break;
  case "石川県": str = "17"; break;
  case "福井県": str = "18"; break;
  case "山梨県": str = "19"; break;
  case "長野県": str = "20"; break;
  case "岐阜県": str = "21"; break;
  case "静岡県": str = "22"; break;
  case "愛知県": str = "23"; break;
  case "三重県": str = "24"; break;
  case "滋賀県": str = "25"; break;
  case "京都府": str = "26"; break;
  case "大阪府": str = "27"; break;
  case "兵庫県": str = "28"; break;
  case "奈良県": str = "29"; break;
  case "和歌山県": str = "30"; break;
  case "鳥取県": str = "31"; break;
  case "島根県": str = "32"; break;
  case "岡山県": str = "33"; break;
  case "広島県": str = "34"; break;
  case "山口県": str = "35"; break;
  case "徳島県": str = "36"; break;
  case "香川県": str = "37"; break;
  case "愛媛県": str = "38"; break;
  case "高知県": str = "39"; break;
  case "福岡県": str = "40"; break;
  case "佐賀県": str = "41"; break;
  case "長崎県": str = "42"; break;
  case "熊本県": str = "43"; break;
  case "大分県": str = "44"; break;
  case "宮崎県": str = "45"; break;
  case "鹿児島県": str = "46"; break;
  case "沖縄県": str = "47"; break;
 }
 return str;
}

mag.form.num2pref = function(str){
 switch(str){
  case "01": str = "北海道"; break;
  case "02": str = "青森県"; break;
  case "03": str = "岩手県"; break;
  case "04": str = "宮城県"; break;
  case "05": str = "秋田県"; break;
  case "06": str = "山形県"; break;
  case "07": str = "福島県"; break;
  case "08": str = "茨城県"; break;
  case "09": str = "栃木県"; break;
  case "10": str = "群馬県"; break;
  case "11": str = "埼玉県"; break;
  case "12": str = "千葉県"; break;
  case "13": str = "東京都"; break;
  case "14": str = "神奈川県"; break;
  case "15": str = "新潟県"; break;
  case "16": str = "富山県"; break;
  case "17": str = "石川県"; break;
  case "18": str = "福井県"; break;
  case "19": str = "山梨県"; break;
  case "20": str = "長野県"; break;
  case "21": str = "岐阜県"; break;
  case "22": str = "静岡県"; break;
  case "23": str = "愛知県"; break;
  case "24": str = "三重県"; break;
  case "25": str = "滋賀県"; break;
  case "26": str = "京都府"; break;
  case "27": str = "大阪府"; break;
  case "28": str = "兵庫県"; break;
  case "29": str = "奈良県"; break;
  case "30": str = "和歌山県"; break;
  case "31": str = "鳥取県"; break;
  case "32": str = "島根県"; break;
  case "33": str = "岡山県"; break;
  case "34": str = "広島県"; break;
  case "35": str = "山口県"; break;
  case "36": str = "徳島県"; break;
  case "37": str = "香川県"; break;
  case "38": str = "愛媛県"; break;
  case "39": str = "高知県"; break;
  case "40": str = "福岡県"; break;
  case "41": str = "佐賀県"; break;
  case "42": str = "長崎県"; break;
  case "43": str = "熊本県"; break;
  case "44": str = "大分県"; break;
  case "45": str = "宮崎県"; break;
  case "46": str = "鹿児島県"; break;
  case "47": str = "沖縄県"; break;
 }
 return str;
}

/* 入力関連 　                                        */
mag.input = {};

/* 特定文字入力キャンセル */
mag.input.cxlChar = function(evt,num){
 evt = (evt) ? evt : event; 
 var charCode=(evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
 if(Number(charCode) == 13 || Number(charCode) == 3){
  return false;
 }else if(num){
  var regexp = new RegExp(Number(charCode));
  var num = new String(num);
  if(num.match(regexp) != null){
   return false;
  }
 }else{
  return true;
 }
}

/* エンターキャンセル */
mag.input.cxlEnter = function(evt){
 evt = (evt) ? evt : event; 
 var charCode=(evt.charCode) ? evt.charCode : ((evt.which) ? evt.which : evt.keyCode);
 if(Number(charCode) == 13 || Number(charCode) == 3){
  return false;
 }else{
  return true;
 }
}

/* 文字数制限 */
mag.input.sub = function(elm,length){
 if(elm != null){
  if(elm.value.length > length){
   elm.value = elm.value.substr(0,length);
   mag.funx.makeAlert(trg,'閉じる',length+'文字を越えました。');
  }
 }
 return;
}

/* 文字列取得関連 　                                        */
mag.string = {};

/* 特殊文字検出 */
mag.string.specialchars = function(elm,flg){
 var detection = function(str){
  mag.funx.makeAlert(trg,'閉じる','『'+str+'』が機種依存文字の為、使用できません。');
  return false;
 }

 var strings = elm.value;
 for(i = 0;i < strings.length;i++){
  var char = strings.charAt(i);
  var character = char.charCodeAt(0);
  if(flg && chkspecialcharacters.indexOf(char) == -1 && !(character < 128 || 65376 < character && character < 65440)){
   detection(char);
  }else if(!flg && chkspecialcharacters.indexOf(char) == -1 && !(character < 128)){
   detection(char);
  }else{
   return;
  }
 }
}

/* 日付フォーマット */
mag.string.dateformat = function(str,split){
 if(str.length > 0){
  if(!split){
   split = '-';
  }
  var day = '';
  var date = str.split(split);
  for(var i = 0;i < date.length;i++){
   if(i == 0){
    var ext = '年';
   }else if(i == 1){
    var ext = '月';
   }else if(i == 2){
    var ext = '日';
   }
   day += date[i]+ext;
  }
  return day;
 }else{
  return false;
 }
}

/* 曜日コンバータ */
mag.string.weekconvenjp = function(str){
 if(str.length > 0){
  if(str == 'Mon'){
   str = "月";
  }else if(str == 'Tue'){
   str = "火";
  }else if(str == 'Wed'){
   str = "水";
  }else if(str == 'Thu'){
   str = "木";
  }else if(str == 'Fri'){
   str = "金";
  }else if(str == 'Sat'){
   str = "土";
  }else if(str == 'Sun'){
   str = "日";
  }
  return str;
 }else{
  return false;
 }
}

/* 選択範囲取得 　                                        */
mag.string.getStr = function(){
 var selenct;
 if(document.all){
  select = document.selection.createRange().text;
 }else if(navigator.userAgent.indexOf('Safari') != -1){
   select = window.getSelection();
 }else{
  select = document.getSelection();
 }
 return select;
}

/* 各種関数 　                                        */
mag.funx = {};

/* 無効化 　                                        */
mag.funx.empty = function(){
 return false;
}

/* チェックボックス補助 　                                        */
mag.funx.chkhelper = function(elm){
 if(mag.get.id(elm) != null){
  if(mag.get.id(elm).checked == true){
   mag.get.id(elm).checked = false;
  }else{
   mag.get.id(elm).checked = true;
  }
 }
}

mag.funx.allchkher = function(elm,names){
 if(mag.get.name(names) != null){
  var flg = elm.checked;
  var checks = mag.get.name(names);
  for(var i = 0;i < checks.length;i++){
   checks.item(i).checked = flg;
  }
 }
}

/* ハイライト 　                                        */
mag.funx.changecolor = function(elm,bg,txt){
 if(mag.get.id(elm) != null){
  var trg = mag.get.id(elm).style;
  if(bg && bg.length > 0){
   trg.backgroundColor = bg;
  }
  if(txt && txt.length > 0){
   trg.color = txt;
  }
 }else{
  return false;
 }
}

/* タブ切り替え 　                                        */
mag.funx.tabchanger = function(src,active,srcparent,trgparent){
 var tabs = mag.get.tag('A',mag.get.id(srcparent));
 if(tabs.length > 0){
  for(var i = 0;i < tabs.length;i++){
   if(tabs.item(i).id != 'nontab'){
    tabs.item(i).style.color = '#FFFFFF';
   }
  }
  src.style.color = '#333333';
 }
 var tabtrgs = mag.get.tag('DIV',mag.get.id(trgparent));
 if(tabtrgs.length > 0){
  for(var i = 0;i < tabtrgs.length;i++){
   if(tabtrgs.item(i).id.length > 0 && tabtrgs.item(i).id != 'pdfpage' && tabtrgs.item(i).id != 'jpgpage'){
    tabtrgs.item(i).style.display = 'none';
   }
  }
 }
 if(mag.get.id(active) != null){
  mag.get.id(active).style.display = 'block';
 }
}

/* フォームターゲット変更 　                                        */
mag.funx.switchtrg = function(src,trg){
 if(mag.get.id(src) != null){
  mag.get.id(src).target = trg;
 }
}

/* カーテン */
mag.funx.curtain = function(){
 var getY = function(){
  return mag.size.getWindow().Y+mag.size.getDocScroll().Y;
 }
 var getX = function(){
  if(mag.agent.ie()){
   return mag.size.getWindow().X+mag.size.getDocScroll().X;
  }else{
   return mag.size.getWindow().X+mag.size.getDocScroll().X-15;
  }
 }
 mag.funx.uncurtain();
 var layer = mag.make.elm('DIV','curtain');
 document.body.appendChild(layer);
 layer.style.width = '100%';
 layer.style.height = getY()+'px';
 mag.event.addListener(window,'resize',function(){
  layer.style.height = getY()+'px';
  layer.style.width = getX()+'px';
 });
 mag.event.addListener(window,'scroll',function(){
  layer.style.height = getY()+'px';
  layer.style.width = getX()+'px';
 });
}

mag.funx.uncurtain = function(){
 var layer = mag.get.id('curtain');
 if(layer != null){
  mag.dom.removeChild(layer);
 }
 return false;
}
/* グレイアウト 　                                        */
mag.funx.overlay = function(){
 var getY = function(){
  return mag.size.getWindow().Y+mag.size.getDocScroll().Y;
 }
 var getX = function(){
  if(mag.agent.ie()){
   return mag.size.getWindow().X+mag.size.getDocScroll().X;
  }else{
   return mag.size.getWindow().X+mag.size.getDocScroll().X-15;
  }
 }
 mag.funx.outlay();
 var layer = mag.make.elm('DIV','overlay');
 document.body.appendChild(layer);
 layer.style.width = '100%';
 layer.style.height = getY()+'px';
 mag.event.addListener(window,'resize',function(){
  layer.style.height = getY()+'px';
  layer.style.width = getX()+'px';
 });
 mag.event.addListener(window,'scroll',function(){
  layer.style.height = getY()+'px';
  layer.style.width = getX()+'px';
 });
}

mag.funx.outlay = function(){
 var layer = mag.get.id('overlay');
 if(layer != null){
  mag.dom.removeChild(layer);
 }
 return false;
}

/* value取得 　                                        */
mag.funx.getVal = function(elm){
 var val;
 if(elm.value != 'undefined'){
  val = elm.value;
 }else{
  val = elm.selectedIndex;
  val = elm.options[val].value;
 }
 return val;
}

/* セレクト取得 　                                        */
mag.funx.getselected = function(elm){
 var val = new Object();
 if(elm.value != null){
  val.value = elm.selectedIndex;
  val.value = elm.options[val.value].value;
  val.txt = elm.selectedIndex;
  val.txt = elm.options[val.txt].text;
  return val;
 }else{
  return false;
 }
}

/* システムロケーション */
mag.funx.index = function(){
 location.href = './';
}

mag.funx.sort = function(){
 location.href = './?sort=1';
}

/* ダイアログ生成  　                                        */
var dialogtarget = null;

mag.funx.make2Diver = function(trg,v1,v2,func1,func2,msg,flg){
 mag.funx.curtain();
 var div = mag.make.elm('DIV','dialog');
 var span = mag.make.elm('SPAN');
 var massage = document.createTextNode(msg);
 span.appendChild(massage);
 div.appendChild(span);
 var btnArea = mag.make.elm('DIV','dialogBtn');
 var btnelm = mag.make.btn(v1,'button','','domBtn2');
 mag.event.addListener(btnelm,'click',func1);
 btnArea.appendChild(btnelm);
var btnelm = mag.make.btn(v2,'button','','domBtn2');
 mag.event.addListener(btnelm,'click',func2);
 btnArea.appendChild(btnelm);
 if(flg){
  var btnelm = mag.make.btn('キャンセル','button','','domBtn2');
  mag.event.addListener(btnelm,'click',mag.funx.removeDialog);
  btnArea.appendChild(btnelm);
 }
 div.appendChild(btnArea);
 if(mag.get.id(trg) != null){
  dialogtarget = mag.get.id(trg);
  dialogtarget.appendChild(div);
 }
}

mag.funx.makeDialog = function(trg,name,type,value,msg,chks){
 if(chks){
  if(mag.get.name(chks) != null){
   var chk = mag.get.name(chks);
   var checkcnt = 0;
   for(var i = 0;i < chk.length;i++){
    if(chk.item(i).checked == true){
     checkcnt++;
    }
   }
   if(checkcnt == 0){
    return false;
   }
  }else{
   return false;
  }
 }
 mag.funx.overlay();
 var div = mag.make.elm('DIV','dialog');
 var span = mag.make.elm('SPAN');
 var massage = document.createTextNode(msg);
 span.appendChild(massage);
 div.appendChild(span);
 var btnArea = mag.make.elm('DIV','dialogBtn');
 var btnelm = mag.make.btn(value,type,name,'domBtn');
 btnArea.appendChild(btnelm);
 var btnelm = mag.make.btn('キャンセル','button','','domBtn');
 mag.event.addListener(btnelm,'click',mag.funx.removeDialog);
 btnArea.appendChild(btnelm);
 div.appendChild(btnArea);
 if(mag.get.id(trg) != null){
  dialogtarget = mag.get.id(trg);
  dialogtarget.appendChild(div);
 }
}

/* アラート生成 　                                        */
mag.funx.makeAlert = function(trg,value,msg){ 
 mag.funx.overlay();
 if(mag.get.id('dialog') != null){
  mag.dom.removeChild(mag.get.id('dialog'));
 }
 var div = mag.make.elm('DIV','dialog');
 var span = mag.make.elm('SPAN');
 var massage = document.createTextNode(msg);
 span.appendChild(massage);
 div.appendChild(span);
 var btnArea = mag.make.elm('DIV','dialogBtn');
 var btnelm = mag.make.btn(value,'button','','domBtn');
 mag.event.addListener(btnelm,'click',mag.funx.removeDialog);
 btnArea.appendChild(btnelm);
 div.appendChild(btnArea);
 if(mag.get.id(trg) != null){
  dialogtarget = mag.get.id(trg);
  dialogtarget.appendChild(div);
  btnelm.focus();
 }
}

/* ダイアログ削除 　                                        */
mag.funx.removeDialog = function(){
 if(dialogtarget != null && mag.get.id('dialog') != null){
  dialogtarget.removeChild(mag.get.id('dialog'));
  dialogtarget = null;
  mag.funx.outlay();
  return false;
 }
}

/* ポップアップ 　                                        */
mag.funx.popWindow = null;

mag.funx.openPop = function(url,x,y,marginX,marginY,pos,name,opt){
 var position = new Object();
 if(!pos){
  pos = 1;
 }
 if(!marginX){
  marginX = 20;
 }
 if(!marginY){
  marginY = 20;
 }
 if(!name){
  name = null;
 }
 switch(pos){
  case 1:
   position.X = marginX;
   position.Y = marginY;
  break;
  case 2:
   position.X = screen.availWidth-x-marginX;
   position.Y = marginY;
  break;
  case 3:
   position.X = marginX;
   position.Y = screen.availWidth-y-marginY;
  break;
  case 4:
   position.X = screen.availWidth-x-marginX;
   position.Y = screen.availWidth-y-marginY;
  break;
 }
  
 mag.funx.popWindow = window.open(url,name,'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,titlebar=no,resizable=no,fullscreen=no,width='+x+',height='+y+',top='+position.Y+',left='+position.X);
 
 if(opt && opt == true){
  mag.event.addListener(window,'focus',function(){
   if(mag.funx.popWindow){
    mag.funx.popWindow.close();
    mag.funx.popWindow = null;
   }
  });
 }
}

/* ウェイティングホィール 　                                        */
mag.funx.waiting = function(){
 mag.funx.overlay();
 var waiting = mag.make.elm('IMG','waiting');
 waiting.src = root+'gui/wheel.gif';
 document.body.appendChild(waiting);
}

/* ローディングイメージ 　                                        */
mag.funx.getimagefile = function(elm){
 var target = mag.funx.getselected(mag.get.id(elm)).value;
 var trgName = mag.funx.getselected(mag.get.id(elm)).txt;
 var attr = mag.make.elm('SPAN','imgattr');
 attr.appendChild(mag.make.txt(trgName));
 mag.funx.displayimg(90,90,'../../thumb/'+target,'');
}

mag.funx.displayimg = function(x,y,path,name){
 mag.funx.waiting();
 var imglay = mag.make.elm('DIV','imgframe');
 var loadtimer = setTimeout(function(){
  if(mag.get.id('waiting') != null){
   var img = mag.make.elm('img','loadimg');
   img.src = path;
   imglay.appendChild(img);
   
   mag.style.center(imglay.style,x,y);
   img.style.height = 0+'px';
   img.style.width = 0+'px';
   document.body.removeChild(mag.get.id('waiting'));
   document.body.appendChild(imglay);
   widthtrg = 'loadimg';
   widthvalue = 0;
   widthrate = x/5;
   widthlimit = x;
   widthspd = 40;
   widthfunc = function(){
    heighttrg = 'loadimg';
    heightvalue = 0;
    heightrate = y/5;
    heightlimit = y;
    heightspd = 40;
    heightfunc = function(){
     heightfunc = null;
     if(name.length > 0){
      var attr = mag.make.elm('DIV','imgattr');
      attr.appendChild(mag.make.txt(name));
      imglay.appendChild(attr);
     }
     alphatrg = 'imgframe';
     alphavalue = 7;
     alpharate = 1;
     alphalimit = 10;
     alphaspd = 40;
     alphafunc = function(){
      mag.event.addListener(mag.get.id('imgframe'),'mousedown',function(){
       if(mag.get.id('imgframe') != null){
        document.body.removeChild(mag.get.id('imgframe'));
        mag.funx.outlay();
       }
      });
      return false;
     }
     mag.style.alphadelay();
    }
    mag.style.heightchanger();
   }
   mag.style.widthchanger();   
   clearTimeout(loadtimer);
  }
 },800);
}

/* update 2009.01.09 */
mag.funx.gradater = function(active,value,alpha,px){
 var $key = 'active='+active+'&value='+value+'&alpha='+alpha+'&px='+px;
 mag.ajax.request(root+'req/gradater.php','POST',$key,function(response){
  if(response.length > 0){
   var gradate = mag.make.elm('DIV');
   gradate.innerHTML = response;
   mag.dom.insertfirst(gradate);
  }
 },'txt');
}

/* システムログアウト 　                                        */
mag.funx.logout = function(){
 mag.funx.waiting();
 mag.ajax.request(root+'req/global.php','POST','key=out',function(response){
  if(response == 1){
   setTimeout(function(){
    location.href = root+'?flg=1';
   },800);
  }
 },'txt');
}

/* クゥイックルック表示切り替え */
var quickelm = null;

mag.funx.quicklook = function(evt,elm,article){
 if(mag.get.id(elm) != null){
  quickelm = mag.get.id(elm);  
  if(xml.length > 0){
   mag.ajax.request(xml,'GET','',function(response){
    var articles = mag.get.tag('case',response);
    if(article && articles.length > 0){
     for(var i = 0;i < articles.length;i++){
      if(articles.item(i).getAttribute('articlekey') == article){
       var html = mag.dom.getInnerTxt(articles.item(i));
       callback(quickelm,html);
      }
     }
    }
   },'xml');  
  }
 }
 
 function callback(quickelm,html){
  var quickelm = quickelm;
  mag.dom.removeChild(quickelm);
  mag.funx.overlay();
  document.body.appendChild(quickelm);
  quickelm.innerHTML = html;
  quickelm.style.display = 'block';
  mag.funx.quickPos(quickelm);
  alphatrg = elm;
  alphavalue = 4;
  alpharate = 1;
  alphalimit = 9;
  alphaspd = 80;
  alphafunc = function(){
   var remove = function(){
    if(quickelm != null){
     quickelm.style.display = 'none';
     mag.funx.outlay();
    }else{
     return false;
    }
   }
   mag.event.addListener(quickelm,'mousedown',function(){
    remove();
   });
   if(mag.get.id('overlay') != null){
    mag.event.addListener(mag.get.id('overlay'),'mousedown',function(){
     remove();
    });
   }
   return false;
  }
  mag.style.alphadelay();
 }
}

/* クイックルック表示位置設定 */
mag.funx.quickPos = function(quickelm){
 mag.style.setcenter(quickelm);
 mag.event.addListener(window,'resize',function(){
  mag.style.setcenter(quickelm);
 });
 mag.event.addListener(window,'scroll',function(){
  mag.style.setcenter(quickelm);
 });
}

/* update 2009.01.15 */
/* エレメント追随 　                                        */
var trgBarElm = null;
var trgBarPos;
var startBarPos;
var stopBarPos;
var movingBarTimer = null;
var BarPosAddMax;
var BarPosAdd = 1;
var BarPosOds = 1.25;
var BarPosSpd = 20;
var BarRetunPos = 30;
var BarAlpha = 7;
var Barmargin = BarRetunPos;
   
mag.funx.dockingBarVariableReset = function(){
 BarRetunPos = 30;
 BarPosAdd = 1;
}
   
mag.funx.dockingBarSetPosition = function(num){
 trgBarElm.style.top = num+'px';
}

mag.funx.dockingBarMouseOver = function(){
 mag.style.opacity(trgBarElm.style,10);
}

mag.funx.dockingBarMouseOut = function(){
 mag.style.opacity(trgBarElm.style,BarAlpha);
}
   
mag.funx.dockingBarInitirizer = function(evt){
 BarPosAddMax = trgBarElm.offsetHeight;
 mag.event.addListener(trgBarElm,'mouseover',mag.funx.empty);
 mag.event.addListener(trgBarElm,'mouseout',mag.funx.empty);
 if(movingBarTimer != null){
  mag.funx.dockingBarMouseOut();
  clearTimeout(movingBarTimer);
  movingBarTimer = null;
  trgBarPos = mag.pos.getElmPos(trgBarElm).Y;
  stopBarPos = mag.size.getDocScroll().Y+Barmargin;
  startBarPos = mag.pos.getElmPos(trgBarElm).Y;
  if(startBarPos != stopBarPos){
   mag.funx.dockingBarStaking();
  }else{
   return false;
  }
 }else{
  trgBarPos = mag.pos.getElmPos(trgBarElm).Y;
  stopBarPos = mag.size.getDocScroll().Y+Barmargin;
  startBarPos = mag.pos.getElmPos(trgBarElm).Y;
  if(startBarPos != stopBarPos){
   mag.funx.dockingBarStaking();
  }else{
   return false;
  }
 }
}
   
mag.funx.dockingBarStaking = function(evt){
 if(startBarPos < stopBarPos){
  trgBarPos += BarPosAdd;
  mag.funx.dockingBarSetPosition(trgBarPos);
  if(BarPosAdd < BarPosAddMax){
   BarPosAdd *= BarPosOds;
  }else{
   BarPosAdd = BarPosAddMax;
  }
  if(trgBarPos >= (stopBarPos+BarRetunPos)){
   clearTimeout(movingBarTimer);
   mag.funx.dockingBarSetPosition(trgBarPos);
   mag.funx.dockingBarSetPosition((stopBarPos+BarRetunPos));
   trgBarPos = stopBarPos+BarRetunPos;
   movingBarTimer = null;
   mag.funx.dockingBarVariableReset();
   mag.funx.returnBarDown();
   return false;
  }
 }else{
  trgBarPos -= BarPosAdd;
  mag.funx.dockingBarSetPosition(trgBarPos);
  if(BarPosAdd < BarPosAddMax){
   BarPosAdd *= BarPosOds;
  }else{
   BarPosAdd = BarPosAddMax;
  }
  if(trgBarPos <= (stopBarPos-BarRetunPos)){
   clearTimeout(movingBarTimer);
   mag.funx.dockingBarSetPosition(trgBarPos);
   mag.funx.dockingBarSetPosition((stopBarPos-BarRetunPos));
   trgBarPos = stopBarPos-BarRetunPos;
   movingBarTimer = null;
   mag.funx.dockingBarVariableReset();
   mag.funx.returnBarOver();
   return false;
  }
 }
 movingBarTimer = setTimeout(mag.funx.dockingBarStaking,BarPosSpd);
}
   
mag.funx.returnBarDown = function(){
 trgBarPos -= (BarPosAdd/20);
 BarRetunPos -= (BarPosAdd/20);
 BarPosAdd *= BarPosOds;
 mag.funx.dockingBarSetPosition(trgBarPos);
 if(BarRetunPos <= 0){
  clearTimeout(movingBarTimer);
  mag.funx.dockingBarVariableReset();
  mag.event.addListener(trgBarElm,'mouseover',mag.funx.dockingBarMouseOver);
  mag.event.addListener(trgBarElm,'mouseout',mag.funx.dockingBarMouseOut);
  return false;
 }
 movingBarTimer = setTimeout(mag.funx.returnBarDown,BarPosSpd);
}
   
mag.funx.returnBarOver = function(){
 trgBarPos += (BarPosAdd/20);
 BarRetunPos -= (BarPosAdd/20);
 BarPosAdd *= BarPosOds;
 mag.funx.dockingBarSetPosition(trgBarPos);
 if(BarRetunPos <= 0){
  clearTimeout(movingBarTimer);
  mag.funx.dockingBarVariableReset();
  mag.event.addListener(trgBarElm,'mouseover',mag.funx.dockingBarMouseOver);
  mag.event.addListener(trgBarElm,'mouseout',mag.funx.dockingBarMouseOut);
  return false;
 }
 movingBarTimer = setTimeout(mag.funx.returnBarOver,BarPosSpd);
} 

/* サイドナビゲート表示位置設定 */
mag.funx.naviPos = function(){
 var wrapper = mag.get.id('wrapper');
 if(mag.get.id('rightpanel') != null){
  var navi = mag.get.id('rightpanel');
  navi.style.left = ((mag.pos.getElmPos(wrapper).X+wrapper.offsetWidth)-34)+'px';
  navi.style.display = 'block';
 }
}

/* 操作パネル表示位置設定 */
mag.funx.panelPos = function(){
 var wrapper = mag.get.id('wrapper');
 if(mag.get.id('toolbar') != null){
  var panel = mag.get.id('toolbar');
  panel.style.left = (mag.pos.getElmPos(wrapper).X-55)+'px';
  panel.style.display = 'block';
 }
}

/* Guiパーツ配置 */
mag.funx.setPos = function(){
 mag.funx.naviPos();
 mag.funx.panelPos();
}

/* 表示時実行関数登録 */
mag.event.addListener(window,'load',function(){
 if(mag.get.id('rightpanel') != null){
  trgBarElm = mag.get.id('rightpanel');
  mag.event.addListener(window,'scroll',mag.funx.dockingBarInitirizer);
  mag.event.addListener(trgBarElm,'mouseover',mag.funx.dockingBarMouseOver);
  mag.event.addListener(trgBarElm,'mouseout',mag.funx.dockingBarMouseOut);
  mag.funx.dockingBarMouseOut();
 }
 if(mag.get.id('mailform') != null){
  mag.form.helper();
 }
 mag.funx.setPos();
 mag.event.addListener(window,'resize',mag.funx.setPos);
 mag.event.addListener(window,'load',mag.form.selection);
});