var JC = {
  tabs: {}, imgs: {}, nowgix: "", gnum: "", imgid: "", kwp: "", gid: "", align:"",
  svf: "", svp: "", svt: "", svi: "", svh: {},
  mouseX: 0, mouseY: 0,
//
  onMouseMove: function(e){
    if(e){
      JC.mouseX=e.pageX; JC.mouseY=e.pageY;
    }else{
      JC.mouseX=event.clientX+document.body.scrollLeft;
      JC.mouseY=event.clientY+document.body.scrollTop;
    }
  },
//
  onMouseOver: function(e){
    var elm, i, src, over, pop, md, eln, nd, ref;
    var attr={'src':'', 'over':'', 'popup':'', 'id':'','page':'', 'href':'' };
    if(e){elm=e.target;}else{elm=window.event.srcElement;}
    if(elm.tagName=='IMG' || elm.tagName=='SPAN' || elm.tagName=='A'){
      for(k in attr){nd=elm.getAttributeNode(k); if(nd){attr[k]=nd.value;}}
      if(attr['over']){
        if(attr['id'] && JC.imgs && JC.imgs[attr['id']]){
          elm.src=ins(JC.imgs[attr['id']], attr['over']);
        }else{
          elm.src=ins(attr['src'], attr['over']);
        }
        JC.svf=attr['src'];
      }
      if(attr['popup']){eln=document.getElementById(attr['popup']); if(eln){
        JC.svp=eln; eln.style.position='absolute';
        eln.style.top=JC.mouseY; eln.style.left=JC.mouseX; eln.style.display='block';
      }}
      if(attr['page']){ref=attr['href']; if(ref){
        var rf='page'+ref.replace('/', '0'); var em=document.getElementById(rf);
        if(!em){
          em=document.createElement("IMG"); em.setAttribute("src","/image/page/"+attr['page']+ref);
          em.setAttribute("id",rf); em.setAttribute("border",0); elm.appendChild(em);
        }
        var psx=JC.mouseX-0+3; var atw=attr['page']-0; var ctw=document.body.clientWidth-15;
        if((psx+atw)>ctw){psx=ctw-atw;}
        JC.svp=em; em.style.position='absolute'; em.style.top=JC.mouseY; em.style.left=psx;
        em.style.display='block';
      }}
    }
  },
//
  onMouseOut: function(e){ //ok マウスアウト時のイメージ復元（内部関数）
    var elm;
    if(JC.svf){
      if(e){elm=e.target; if(elm.getAttributeNode("src")){elm.getAttributeNode("src").value=JC.svf;}}
      else{elm=window.event.srcElement; elm.src=JC.svf;}
      JC.svf="";
    }
    if(JC.svp){
       JC.svp.style.display='none'; JC.svp='';
    }
  },
//
  onLoad: function(id){ //ok ページロード時のイメージ入れ替えとイメージロード（初期処理）
    var img, elm, elo, over, els, src, tmp, j;
    for(j=0; j<document.images.length; j++){
      img=document.images[j]; elo=img.getAttributeNode("over");
      if(elo){
        over=elo.value; els=img.getAttributeNode("src");
        if(els){
          src=els.value; tmp=new Image(); tmp.src=ins(src, over); elm=img.getAttributeNode("class");
          if(elm){if(elm.value=="now"){els.value=ins(src, over); elo.value="";}}
        }
      }
    }
    if(id!=""){JC.swap(id);}
  },
//
  onClick: function(e){
    var elm, i, src, md, eln, nd; var area='';
    var attr={ 'src':'', 'showup':'', 'id':'', 'close':'', 'tabs':'',
     'toggle':'', 'post':'', 'gmap':'', 'area':'', 'clear':'', 'align':'' };
    if(e){elm=e.target;}else{elm=window.event.srcElement;}
    if(elm.tagName=='IMG' || elm.tagName=='SPAN' || elm.tagName=='P'){
      for(k in attr){nd=elm.getAttributeNode(k); if(nd){attr[k]=nd.value;}}
      JC.top=elm.offsetTop; JC.left=elm.offsetLeft; JC.width=elm.offsetWidth; JC.height=elm.offsetHeight;
      switch(attr['align']){
        case 'bottom': JC.mouseY=JC.top+JC.height; JC.mouseX=JC.left; break;
        case 'top': JC.mouseX=JC.left+JC.width; JC.mouseY=JC.top; break;
        default: break;
      }
      if(attr['showup']){
        eln=document.getElementById(attr['showup']);
        if(attr['area']){area=attr['area'];}else{area='extention';}
        switch(attr['showup'].substr(0, 1)){
          case '@':
            var y=attr['showup'].substr(1);
            var elo=document.getElementById(area); elo.style.position='absolute';
            elo.style.top=JC.mouseY; elo.style.left=JC.mouseX; JC.phd(y, area);
            break;
          case '/':
            var y=attr['showup'];
            var elo=document.getElementById(area); elo.style.position='absolute';
            elo.style.top=JC.mouseY; elo.style.left=JC.mouseX;
            ajax.proc=function(res){
              var elm=document.getElementById(area); if(elm){elm.innerHTML=res;}
            }
            ajax.get(y);
            break;
          case '=':
            JC.redirect(attr['showup'].substr(1));
            break;
          default:
            eln.style.position='absolute';
            eln.style.top=JC.mouseY; eln.style.left=JC.mouseX; eln.style.display='block';
        }
      }
      if(attr['close']){
        var eln=document.getElementById(attr['close']); eln.style.display='none';
      }
      if(attr['clear']){
        var eln=document.getElementById(attr['clear']); eln.innerHTML='';
      }
      if(attr['tabs']){if(JC.svt){
        var eln=document.getElementById(JC.svt); eln.style.display='none';
        var elo=document.getElementById(attr['tabs']); elo.style.display='block';
        JC.repl(attr['id']); JC.repb(JC.svi); JC.svt=attr['tabs']; JC.svi=attr['id'];
      }}
      if(attr['toggle']){
        eln=document.getElementById(attr['toggle']);
        if(eln){
          if(eln.style.display && eln.style.display=='none'){
            eln.style.display='block';
          }else{
            eln.style.display='none';
          }
        }
      }
      if(attr['post']){
        ajax.proc=function(res){
          eln=document.getElementById('postarea'); if(eln){eln.innerHTML=res;}
        }
        ajax.post(attr['post']);
      }
      if(attr['gmap']){JC.map(attr['gmap']);}
    }
  },
//
  swap: function(id){ //ok イメージの強制入れ替え
    var elm, elo, src; elm=document.getElementById(id); 
    if(elm){
      elo=elm.getAttributeNode("now"); if(!elo){elo=elm.getAttributeNode("over");}
      if(elo){
        src=elm.getAttributeNode("src").value; elm.getAttributeNode("src").value=ins(src, elo.value);
        elm.getAttributeNode("over").value="";
      }
    }
  },
//
  tabInit: function(id){
    var elm=document.getElementById(id);
    if(elm){
      var idt=elm.getAttributeNode('tabs').value;
      if(idt){var eln=document.getElementById(idt);} if(eln){eln.style.display='block';}
      JC.repl(id); JC.svt=idt; JC.svi=id;
    }
  },
//
  compress: function(ids){
    var id=ids.split(';');
    for(i in id){
      var elm=document.getElementById(id[i]);
      if(elm){
        JC.svh[id[i]]=elm.innerHTML; var ln=JC.choose(JC.svh[id[i]]);
        ln+='<a href="JavaScript:JC.expand('+"'"+id[i]+"');"+'">..続きを読む</a>';
        elm.innerHTML=ln;
      }
    }
  },
//
  expand: function(id){
    var elm=document.getElementById(id); if(elm){elm.innerHTML=JC.svh[id];}
  },
//
  layer: function(id, np){ // レイヤー指定（ＩＤ、層）
    var elm; elm=document.getElementById(id); if(elm){elm.style.zIndex=np;}
  },
//
  position: function(id, x, y){ // 位置指定（ＩＤ、ｘ位置、ｙ位置）
    var elm; elm=document.getElementById(id); if(elm){elm.style.top=y; elm.style.left=x;}
  },
//-- イメージの入れ替え（内部関数）
  repl: function(id){
    var elm, elo, src;
    elm=document.getElementById(id);
    if(elm){
      elo=elm.getAttributeNode("now"); if(!elo){elo=elm.getAttributeNode("over");}
      if(elo){
        if(JC.imgs[id]){elm.getAttributeNode("src").value=ins(JC.imgs[id], elo.value);}
        else{src=elm.getAttributeNode("src").value; JC.imgs[id]=src;
             elm.getAttributeNode("src").value=ins(src, elo.value);}
        if(JC.svf){JC.svf=elm.getAttributeNode("src").value;}
      }
    }
  },
//-- イメージの入れ替え（内部関数）
  repb: function(id){
    var elm, elo, src;
    elm=document.getElementById(id);
    if(elm){
      if(JC.imgs[id]){elm.getAttributeNode("src").value=JC.imgs[id];}
      else{JC.imgs[id]=elm.getAttributeNode("src").value;}
    }
  },
//
  choose: function(txt, lng){
    var out=''; var i; var sw=true; if(!lng){lng=50;}
    for(i=0; i<txt.length; i++){
      var x=txt.substr(i, 1);
      switch(x){case '<': sw=false; break; case '>': sw=true; break; default: if(sw){out+=x;}}
      if(out.length>lng){break;}
    }
    return out;
  },
//
  load: function(url, id, pars){ //Ａｊａｘ起動によるＤｉｖ内書換(url,divのid,引数)
    ajax.proc=function(res){
      var elm=document.getElementById(id); if(elm){elm.innerHTML=res;}
    }
    ajax.get(url+"?"+pars);
  },
  kickAjax1: function(url, id, pars){JC.load(url, id, pars);},
//
  clearDiv: function(id){
    elm=document.getElementById(id); if(elm){elm.innerHTML='';}
  },
//
  execute: function(pgm){ //実行(プログラム)
    ajax.proc=function(res){
      var rc=eval(res);
    }
    ajax.get(pgm);
  },
//
  post: function(pgm, id, fm, nx){ //post
    ajax.proc=function(res){
      var em=document.getElementById(id); if(em){em.innerHTML=res;}
    }
    ajax.post(pgm, fm, nx);
  },
//
  send: function(url, id){ //パッケージング送信(プログラム、ＤｉｖＩＤ)
    ajax.proc=function(res){
      var em=document.getElementById(id); if(em){em.innerHTML=res;}
    }
    ajax.get(url+'?'+JC.package(JC.editField()), id);
  },
//
  trans: function(pg, fm, id){ // パーシャル送信(プログラム、フォーム、ＤｉｖＩＤ)
    ajax.post(pg, JC.editField(fm), id);
  },
//
  redirect: function(url){location.href=url;},
//
  er404: function(dt){
    ajax.proc=function(res){eval(res);}; var pgm='/menu/AxError404.php?'+document.location+'&'+dt;
    ajax.get(pgm);
  },
//
  shoplist: function(pj, c1, c2){ //ショップリストインターフェイス(プロジェクト,グループ,地域)
    if(!c1){var n1=document.pref.brd.selectedIndex; c1=document.pref.brd.options[n1].value;}
    if(!c2){var n2=document.pref.sel.selectedIndex; c2=document.pref.sel.options[n2].value;}
    var c="@/menu/shopinq.php+"+pj+"+"+c1+"+"+c2+"+1"; JC.kickAjax1("/menu/stack.php", "ShopList", c);
  },
//
  zipDevelop: function(id){ //郵便番号自動展開
    if(!id){id='pf_zip';} var em=document.getElementById(id);
    if(em){if(em.value.length==7){
      ajax.proc=function(res){
        if(res){
          var x=res.split(';'); var en=document.getElementById('pf_pref'); var i=0;
          if(en){for(i in en.childNodes){if(en.childNodes[i].value==x[0]){en.childNodes[i].selected=true;}}}
          eo=document.getElementById('pf_addr'); if(eo){eo.value=x[1];}
        }
      }
      ajax.get('/menu/zipDevelop.php?'+em.value);
    }}
  },
//
  shohinQuery: function(mode, id, pos){ //商品一覧展開
    if(!id){id='pf_hinban';} var em=document.getElementById(id); if(!mode){id='name';}
    if(em){if(em.value.length>1){
      ajax.proc=function(res){
        if(res){
          if(!pos){pos='extention';} var en=document.getElementById(pos);
          if(en){en.innerHTML=res;}
        }
      }
      ajax.get('/menu/shohinQuery.php?'+mode+';'+em.value);
    }}
  },
//
  selVal: function(form, item){ // 選択値(フォーム名、アイテム名)
    var n=document.forms[form].elements[item].selectedIndex;
    var v=document.forms[form].elements[item].options[n].value; return(v);
  },
//
  map: function(x){ // 地図用ウィンドオープン
    window.open('/menu/map.html?'+x, '', 'width=520,height=350');
  },
//-- クッキーの読み込み
  getCookie: function(key){ // (キー)
    var txt, sw, k, v, x, i;
    txt=unescape(document.cookie);
    sw=0; k=""; v="";
    for(i=0; i<txt.length; i++){
      x=txt.substring(i,i+1);
      switch(sw){
        case 0: if(x==';'){break;} if(x!=" "){sw=1; k=x;} break;
        case 1: if(x=="="){sw=2;}else{k+=x;} break;
        default: if(x==";"){if(k==key){return(v);}else{sw=0; k=""; v="";}}else{v+=x;} break;
      }
    }
    if(k==key){return(v);}
    return("");
  },
//--  クッキーの書き込み
  putCookie: function(key, val, exp){ // (キー、値、期限)
    var tmp; tmp='NAME='+key+'; '; tmp=key+"="+escape(val)+"; "; tmp+='path="/"; '; tmp+="expires="+exp+"; ";
    document.cookie=tmp;
  },
//-- フラッシュの書き出し
  flash: function(path, wi, hi, bgcolor, align, pars){ //(swfパス,幅,高さ,背景色,寄せ,パラメタ)
    if(path.substring(path.length-4)=='.jpg'){
      document.writeln('<img src='+path+' width='+wi+' height='+hi+' '+bgcolor+' />'); return;}
    if(align==''){align='TOP';} if(bgcolor==''){bgcolor='#ffffff';} 
    var ln='<OBJECT classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" ';
    ln+='codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" ';
    ln+='width="'+wi+'" height="'+hi+'" align="top" id="Shockwave Flash Object1">';
    document.writeln(ln);
    document.writeln('<param name="movie" value="'+path+'">');
    document.writeln('<param name="quality" value="high">');
    if(bgcolor=='trans'){
      document.writeln('<param name="wmode" value="transparent">');
      document.writeln('<param name="bgcolor" value="#ffffff">');
    }else{
      document.writeln('<param name="bgcolor" value="'+bgcolor+'">');
    }
    document.writeln('<param name="FlashVars" value="'+pars+'">');
    ln='<embed src="'+path+'" width="'+wi+'" height="'+hi+'" align="'+align+'" quality="high" ';
    if(bgcolor=='trans'){ln+='wmode="transparent" ';}else{ln+='bgcolor="'+bgcolor+'" ';}
    ln+='type="application/x-shockwave-flash" FlashVars="'+pars+'" ';
    ln+='pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>';
    document.writeln(ln);
    document.writeln('</OBJECT>');
  },
// フォームＶａｌｕｅ編集（内部関数）
  editField: function(fm, nx){
    var k, v, x, y, elms, i, dt, tp; dt={"x":"x"}; if(!fm){fm='fm1';}
    elms=document.forms[fm].elements;
    if(elms){for(i=0;i<elms.length;i++){
      k=elms[i].name; tp=elms[i].getAttribute('type');
      if(tp){
        if((tp=='text') || (tp=='password') || (tp=='hidden')){dt[k]=elms[i].value;}
        if((tp=='radio') || (tp='checkbox')){if(elms[i].checked){dt[k]=elms[i].getAttribute('value');}}
        if(tp=='option'){if(elms[i].selected){dt[k]=elms[i].getAttribute('value');}}
      }else{
        dt[k]=elms[i].value;
      }
    }}
    if(nx){dt['next']=nx;}
    return(dt);
  },
//
  showImgList: function(id, num){
    var i=0; var ps=0; var elm=document.getElementById(id+i);
    while(elm){
      if(i<num){
        elm.style.display='block'; elm.style.posTop=ps; elm.style.position='absolute'; ps=ps+40;
      }else{
        elm.style.display='none'; elm.style.posTop=0; elm.style.position='absolute';
      }
      i++; elm=document.getElementById(id+i); JC.max=i;
    }
    JC.nowgix=0; JC.gnum=num; JC.imgid=id;
  },
//
  showImgNext: function(){
    JC.nowgix++; if(JC.nowgix+JC.gnum>JC.max){JC.nowgix=JC.max-JC.gnum;}
    var id=JC.imgid; var i=0; var elm=document.getElementById(id+i); var ps=0;
    while(elm){
      elm.style.display='none'; elm.style.posTop=0;
      if(i>JC.nowgix-1){if(i<JC.nowgix+JC.gnum){
        elm.style.display='block'; elm.style.posTop=ps; ps=ps+40;
      }}
      i++; elm=document.getElementById(id+i);
    }
  },
//
  showImgPrior: function(){
    JC.nowgix--; if(JC.nowgix<0){JC.nowgix=0;}
    var id=JC.imgid; var i=0; var elm=document.getElementById(id+i); var ps=0;
    while(elm){
      elm.style.display='none'; elm.style.posTop=0;
      if(i>JC.nowgix-1){if(i<JC.nowgix+JC.gnum){
        elm.style.display='block'; elm.style.posTop=ps; ps=ps+40;
      }}
      i++; elm=document.getElementById(id+i);
    }
  },
// 連想配列＝＞POST配列（内部関数）
  flat: function(dt){ //
    var out, key, c; out=''; c='';
    for(key in dt){out+=c; out+=key; out+='='; out+=encodeURIComponent(dt[key]); c='&';}
    return out;
  },
// 連想配列＝＞連想配列テキスト（内部関数）
  package: function(dt){ //
    var out, key; out='';
    for(key in dt){out+=JC.lentx(key, 2); out+=JC.lentx(dt[key], 3); out+=key; out+=dt[key];}
    return out;
  },
// 連想配列テキスト＝＞連想配列（内部関数）
  unpackage: function(txt){ //
    var pos, klen, vlen, dt;
    pos=0; klen=0; vlen=0; dt=new Object();
    while(pos<txt.length){
      klen=parseInt(txt.substring(pos, pos+2), 10); vlen=parseInt(txt.substring(pos+2, pos+5), 10);
      key=txt.substring(pos+5, pos+5+klen); val=txt.substring(pos+5+klen, pos+5+klen+vlen);
      dt[key]=val; pos=pos+5+klen+vlen;
    }
    return dt;
  },
// 文字長編集（内部関数）
  lentx: function(txt, len){ //
    var out, x, y, l; y='000'; out='';
    x=txt.length; x+=' '; l=len-x.length+1; x=y.substring(0, l)+x; out=x.substring(0, len);
    return out;
  },
//-- 部分表示/非表示
  opcl: function(id){
    elm=document.getElementById(id);
    if(elm){if(elm.style.display=='none'){
      elm.style.display='block';
    }else{
      elm.style.display='none';
    }}
  },
//-- phdダイナミック呼び出し
  phd: function(nm, id){
    if(!id){id='expla';} JC.kickAjax1('/menu/phdpand.php', id, nm);
  },
//
  close: function(){}
}
//
//
function wopen1(x, wi, hi){ // エコノミーウィンドウのオープン parameter( x:URL, wi:Width, hi:Height )
    var p3 = "width=" + wi + ",height=" + hi; window.open(x, "", p3 );
}
//
function wopen2(x, wi, hi){ // エコノミーウィンドウ・縦バー付(URL,Width,Height)
    var p3 = 'width='+wi+',height='+hi+',scrollbars=yes' ; window.open(x, "", p3 );
}
//
function map(x){ // 地図用ウィンドオープン
  window.open('/menu/map.html?'+x, '', 'width=520,height=350');
}
//-- ファイル名の部分変更関数
function ins(txt, over){
  var sw, out, x, i; sw=0; out='';
  for(i=txt.length;i>0;i--){
    x=txt.substr(i-1, 1); if(sw==0){if(x=='.'){out=over+'.'+out; sw=1;}else{out=x+out;}}else{out=x+out;}
  }
  return out;
}
// AJAX
var ajax = {
  server: 'http://172.17.12.75', path: '/menu/',
//
  proc: function(){alert('No Procedure Defined');},
// 非同期通信Ｇｅｔ（内部処理）
  get: function(pg){ // http get request
    var xmlhttp, elm, eln, i, x;
    if (window.ActiveXObject && !window.XMLHttpRequest){window.XMLHttpRequest=function(){
      try{return (new ActiveXObject('Msxml2.XMLHTTP'));} catch(e){}
      try{retrurn (new ActiveXObject('Microsoft.XMLHTTP'));} catch(e){}
      return (null);
    }}
    xmlhttp=new XMLHttpRequest(); xmlhttp.open('GET', pg, true);
    xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
      var res=xmlhttp.responseText; ajax.proc(res);
    }}
    xmlhttp.send(null);
  },
// 非同期通信Ｐｏｓｔ（内部処理）
  post: function(pg, fm, nx){ // http post request program, form name, next
    var xmlhttp, res, elm, txt, y;
    if (window.ActiveXObject && !window.XMLHttpRequest){window.XMLHttpRequest=function(){
      try{return (new ActiveXObject('Msxml2.XMLHTTP'));} catch(e){}
      try{return (new ActiveXObject('Microsoft.XMLHTTP'));} catch(e){}
      return (null);
    }}
    var head=false; if(!pg){pg=window.location; head=true;}
    xmlhttp=new XMLHttpRequest();
    xmlhttp.open('POST', pg, true);
    xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
    if(head){xmlhttp.setRequestHeader("Asics", "ajax=y");}
    xmlhttp.setRequestHeader("Cookie", document.cookie);
    xmlhttp.onreadystatechange=function(){if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
      res=xmlhttp.responseText; ajax.proc(res);
    }}
    var data=JC.flat(JC.editField(fm, nx)); xmlhttp.send(data);
  },
//
  close: function(){}
}
//
var timer={
  hinban: {}, seq: 0, ix: 0, ms: 1500,
  interval: function(){
    timer.proc(); window.setTimeout("timer.interval()", timer.ms);
  },
  proc: function(){}
}
document.onmouseover=JC.onMouseOver; document.onmouseout=JC.onMouseOut;
document.onmousemove=JC.onMouseMove; document.onclick=JC.onClick;//
