var bp = '/';


// cookie --------------------------------------------
function setCookie(name,value,day){
  myExp = new Date();
  myExp.setTime(myExp.getTime()+(day*24*60*60*1000));
  myItem = name + '=' + escape(value) + ';';
  myExpires = 'expires=' + myExp.toGMTString() + ';';
  myPath = 'path=' + bp;
  document.cookie =  myItem + myExpires + myPath;
}

function getCookie(name){
  name = name + '=';
  value = null;
  myStr = document.cookie + ';';
  myOfst = myStr.indexOf(name);
  if(myOfst != -1){
    myStart = myOfst + name.length;
    myEnd   = myStr.indexOf(';' , myStart);
    value = unescape(myStr.substring(myStart,myEnd));
  }
  return value;
}

function cookie_set(type,v,no){
  if(getCookie(type)){
    var c = getCookie(type).split('*');
  }else{
    var c = new Array();
  }
  c[no] = v;
  c = c.join('*');
  setCookie(type,c,30);
}

//get --------------------------------------------
function get(varName){
  var i;
  var urlAry;
  var varAry;
  var workAry;
  urlAry=location.href.split('?',2);
  if(urlAry[1])varAry=urlAry[1].split('&');
  if(varAry){
    for(i=0;i<varAry.length;i++){
      workAry=varAry[i].split('=',2)
      if(workAry[0]==varName)return workAry[1];
    }
  }
}

//ajax --------------------------------------------
function sd(type,frm,disp,id,opt,fnc,loader){
  var arr = new Array();
  if(type) arr.push('type=' + type);
  if(id) arr.push('id=' + id);
  if(opt) arr.push('opt=' + opt);
  var str = '?' + arr.join('&');
  if(!loader) var loader = 'mainloader';
  var url = bp + 'ajax' + str;
  var xmlhttp = new pXmlHttp();
  xmlhttp.setMethod('post');
  xmlhttp.send(url,frm,disp,fnc,loader);
  ldr.v(loader,disp);
}


function op(type,disp,id,opt,fnc,loader){
  var arr = new Array();
  if(type) arr.push('type=' + type);
  if(id) arr.push('id=' + id);
  if(opt) arr.push('opt=' + opt);
  var str = '?' + arr.join('&');
  if(!loader) var loader = 'mainloader';
  var url = bp + 'ajax' + str;
  var xmlhttp = new pXmlHttp();
  xmlhttp.getHtml(url,disp,fnc,loader);
  if(disp == 'fd') fd.disp();
  ldr.v(loader,disp);
}

function gh(type,disp,str,fnc,loader){
  if(!loader) var loader = 'mainloader';
  var xmlhttp = new pXmlHttp();
  var url = bp + 'ajax?type=' + type + '&' + str;
  xmlhttp.getHtml(url,disp,fnc,loader)
  ldr.v(loader,disp);
}

function gt(type,str,fnc){
  if(!fnc) var fnc = '';
  var xmlhttp = new pXmlHttp();
  var url = bp + 'ajax?type=' + type + '&' + str;
  xmlhttp.getText(url,fnc);
}

var ldr = {
  v: function(loader,disp){
    if(loader == 'h') return;
    if($(loader)) $(loader).style.display = 'block';
    if(!(loader == 'mainloader' && $('mainloader'))) return;
    if(disp){
      var d = eloffset($(disp));
      var sy = d[1];
      if(d[0] > 0 && d[1] > 0){
        $('mainloader').style.right = 'auto';
        $('mainloader').style.left = (d[0] + 3) + 'px';
      }
    }else{
      var sy = (document.body.scrollTop || document.documentElement.scrollTop) + 5;
    }
    $('mainloader').style.top = (sy + 3) + 'px';
  },
  
  h: function(loader){
    if($(loader)) $(loader).style.display = 'none';
    if(!(loader == 'mainloader' && $('mainloader'))) return;
    $('mainloader').style.display = 'none';
    $('mainloader').style.left = 'auto';
    $('mainloader').style.right = '3px';
  }
}

//parts --------------------------------------------
function cg(n,v,path){
  if(!n) return
  if(!v) v = ''
  if(typeof(n) != 'object') n = [n];
  if(typeof(v) != 'object') v = [v];
  var g,uarr,garr,varr
  g = new Array
  uarr=location.href.split('?',2)
  if(uarr[1]) garr=uarr[1].split('&')
  if(garr){
    for(i=0;i<garr.length;i++){
      varr = garr[i].split('=',2)
      if(n == 'pref' && varr[0] == 'city') continue;
      if(!in_array(varr[0],n) && varr[0] != 'p' && varr[0] != 'm'){
        g.push(garr[i])
      }
    }
  }
  for(i=0; i < n.length; i++){
    if(v[i]) g.push(n[i] + '=' + encodeURIComponent(v[i]));
  }
  if(path != undefined){
    location.href = bp + path + '?' + g.join('&');
  }else{
    location.href = '?' + g.join('&');
  }
}


function hide(v,clr){
  if(typeof(v) == 'object'){
    var el = v;
  }else{
    var el = $(v);
  }
  if(!el) return;
  el.style.display = 'none'
  if(clr){
    el.innerHTML = '';
  }
}


function cs(v){
  var v = v.split('-');
  var arr = [v[0]];
  if(get('sort')){
    var s = get('sort').split('-');
  }
  if(s && v[0] == s[0] && !v[1]){
    if(s[1] == 'desc'){
      arr.push('asc');
    }else{
      arr.push('desc');
    }
  }else{
    if(v[1] == 'asc'){
      arr.push('asc');
    }else{
      arr.push('desc');
    }
  }
  var set = arr.join('-');
  cg('sort',set);
}


function in_array(v,arr){
  var i;
  for(i=0; i < arr.length; i++){
    if(arr[i] === v) return true
  }
  return false
}


function eloffset(el){
  var _x = _y = _w = _h = 0;
  if(el.offsetParent){
    while (el.offsetParent){
      _x += el.offsetLeft;
      _y += el.offsetTop;
      _w += el.offsetWidth;
      _h += el.offsetHeight;
      el = el.offsetParent;
    }
  }
  return [_x, _y, _w,_h];
}


function chgDay(pre){
  var ds = $(pre + '_day');
  var d = ds.value;
    
  var y = $(pre + '_year').value;
  var m = $(pre + '_month').value;
  ld = new Date(y,m,0);
  var last = ld.getDate();
  
  ds.innerHTML = '';
  for(i = 0; i < last; i++){
    v = i+1;
    ds.options[i] = new Option(v,v);
  }
  ds.options[d-1].selected = true;
}


function sw(url,w,h){
  if(!w) w = 520;
  if(!h) h = 620;
  var subw = window.open(url,'subWin','toolbar=no,location=no,status=yes,resizable=yes,menubar=no,scrollbars=yes,width=' + w + ',height=' + h);
  subw.focus();
}


function reloadpage(){
  location.reload();
}


function msie(){
  var isMSIE = /*@cc_on!@*/false;
  if(isMSIE){
    if(typeof document.documentElement.style.msInterpolationMode != 'undefined'){
      return 7;
    }else{
      return 6
    }
  }
  return 0;
}

//name --------------------------------------------
var tgl = {
  el: function(e1,e2){
    var el1 = (typeof(e1) == 'object') ? e1 : $(e1);
    if(e2) var el2 = (typeof(e2) == 'object') ? e2 : $(e2);
    if(!el1.style.display || el1.style.display == 'none'){
      el1.style.display = 'block';
      if(el2) el2.style.display = 'none';
    }else{
      el1.style.display = 'none';
      if(el2) el2.style.display = 'block';
    }
  },
  
  slt: function(v){
    if(msie() == 6){
      var v = (!v) ? 'hidden' : 'visible';
      selectObj = document.getElementsByTagName('select');
      for (i=0; i<selectObj.length; i++){
        selectObj[i].style.visibility = v;
      }
    }
  },
  
  menu: function(self){
    obj = self.parentNode;
    chd = obj.childNodes;
    for(key in chd){
      if(chd[key].tagName == 'A'){
        txt = chd[key].firstChild.nodeValue;
        if(txt != self.firstChild.nodeValue){
          chd[key].className = '';
        }else{
          chd[key].className = 'u';
        }
      }
    }
  }
}


var fm = {  //form
  reset: function(self,a,opt){
    if(!a[self.name]) return;
    self.style.color='#333';
    if(!opt && self.value == a[self.name]){
      self.value = '';
    }else if(opt && (self.value == '' || self.value == a[self.name])){
      self.style.color='#bbb';
      self.value = a[self.name];
    }
  },
  
  check: function(f,arr){
    var al = new Array();
    for(k in arr){
      if(f.elements[k] && f.elements[k].value == ''){
        f.elements[k].style.backgroundColor = '#ff9';
        al.push(arr[k] + ' は必須です。\n');
      }
    }
    if(al.length > 0){
      alert(al.join(''))
      return true;
    }
    return false;
  },
  
  tgl: function(self,v,opt){
    var a = new Array;
    a[self.name] = v;
    this.reset(self,a,opt);
  },
  
  allCheck: function(self,f,n){
    var c = document.forms[f].elements[n];
    if(c.value){
      c.checked = (c.checked) ? false : true;
      return;
    }
    for(i = 0; i < c.length; i++){
      if(self == true){
        c[i].checked = true;
      }else{
        c[i].checked = false;
      }
    }
  },
  
  getCheck: function(f,n){
    var c = document.forms[f].elements[n];
    if(c.checked) return c.value;
    var v = new Array;
    for(i=0; i < c.length; i++){
      if(c[i].checked == true) v.push(c[i].value);
    }
    if(v.length < 1) return;
    var vs = v.join(', ');
    return vs;
  },
  
  radioCheck: function(f,n){
    var r = f.elements[n];
    if(r.checked) return r.value;
    for(i=0; i < r.length; i++){
      if(r[i].checked == true) return r[i].value;
    }
  }
}


/* --------------------------------------------
  paella.js ---- cross-browser ponpon Ajax Engine
  Copyright 2005 ponpon <ponpon@ponpon-village.net>
  http://ponpon-village.net/
  --------------------------- kuwa 19-Feb-08 */
  
function PonponNamespace(){
  
  function pXmlHttpProcesser(){
      this.create = XMLHttp.create();
      this.method = 'GET';
  };

  pXmlHttpProcesser.xmlhttp = function(){ return XMLHttp.create(); };

  pXmlHttpProcesser.Events = ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];

  pXmlHttpProcesser.prototype = {
    setMethod: function(method){
      var a = method.toUpperCase();
      if(a == 'GET' || a == 'POST' || a == 'PUT' || a == 'PROPFIND'){
        this.method = a;
      }
    },

    getMethod: function(){
      return this.method;
    },

    load: function(url,query,func){
      var xmlhttp = this.create;
      
      xmlhttp.open(this.method,url);
      
      var proc = function (){
        if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
          func(xmlhttp);
        }else if(xmlhttp.readyState == 4 && xmlhttp.status != 200){
          func(null);
        }
      };

      xmlhttp.onreadystatechange = proc;
      if(query != null){
        xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      }else{
        xmlhttp.setRequestHeader('Content-Type','text/html; charset=utf-8');
      }
      xmlhttp.send( query );
    },

    getText: function(url,fnc){
      var proc = function(xmlhttp){
        if(fnc){
          if(xmlhttp != null){
            fnc(xmlhttp.responseText);
          }else{
            fnc(null);
          }
        }
      };

      this.load(url,null,proc);
    },

    getHtml: function(url,div,fnc,loader){
      var proc = function(xmlhttp){
        var disp = $(div);
        disp.innerHTML = xmlhttp.responseText;
        if(fnc) fnc();
        ldr.h(loader);
        if(div && $(div)){
          $(div).style.display = 'block';
        }
      };
      this.load(url,null,proc);
    },

    getHtmltoText: function(url,div){
      var reg;
      
      var proc = function(xmlhttp){
        var disp = $(div);
        var txt = xmlhttp.responseText;
        txt = txt.replace(/</g, '&lt;');
        txt = txt.replace(/>/g, '&gt;');
        txt = txt.replace(/ /g, '&nbsp;');
        reg = new RegExp('\r\n|\r|\n', 'g');
        txt = txt.replace(reg, '<br />');
        disp.innerHTML = txt;
        disp.style.display = 'block';
      };
      this.load(url,null,proc);
    },

    getXml: function(url,fnc){
      var proc = function(xmlhttp){
        if(xmlhttp != null){
          fnc(xmlhttp.responseXML);
        }else{
          fnc(null);
        }
      };
      this.load(url,null,proc);
    },

    getResponse: function(url,fnc){
      var proc = function(xmlhttp){
        if(xmlhttp != null){
          (fnc || function(){})(xmlhttp);
        }
      };
      this.load(url,null,proc);
    },

    send: function(url,frm,div,fnc,loader){
      this.check(this.create);
      frm = document.forms[frm];
      var postdata = this.dataset(frm);
      if(postdata.length = 0){
        window.alert('no data');
        return false;
      }

      var proc = function(xmlhttp){
        var disp = $(div);
        disp.innerHTML = xmlhttp.responseText;
        if(fnc){
          fnc();
        }
        ldr.h(loader);
        if(div && $(div)){
          $(div).style.display = 'block';
        }
      };
      this.load(url,postdata,proc);
    },

    sendOnly: function(url, frm){
      this.check(this.create);
      var postdata = this.dataset(frm);
      if(postdata.length = 0){
        window.alert('no data');
        return false;
      }
      this.load(url, postdata, null);
    },

    check: function(xmlhttp){
      if(xmlhttp){
        if(xmlhttp.readyState == 1 || xmlhttp.readyState == 2 || xmlhttp.readyState == 3){
          window.alert('通信中です。');
          return false;
        }
      }
    },

    dataset: function(frm){
      var postdata = new String();
      for(var i = 0 ; i < frm.elements.length ; i++){
        if(!frm.elements[i].disabled){
          if(!(frm.elements[i].type == 'radio' && frm.elements[i].checked == false) && !(frm.elements[i].type == 'checkbox' && frm.elements[i].checked == false)){
            postdata += '&';
            postdata += frm.elements[i].name;
            postdata += '=';
            postdata += encodeURIComponent(frm.elements[i].value.replace(/&/g,'%26').replace(/\+/g,'%2B'));
          }
        }
      }
      if(postdata.length > 0) return postdata.substring(1);
    }
  }
  
  function XMLHttp(){};
  
  XMLHttp.create = function(){
    if(typeof ActiveXObject != 'undefined'){
      var ms = new Array('Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.5.0');
      for(var x = 0; x < ms.length; x++){
        try{
          return new ActiveXObject(ms[x]);
        }catch(e){}
      }
    }
    if(typeof XMLHttpRequest != 'undefined'){
      return new XMLHttpRequest();
    }
    return null;
  };
  
  function pXsltProcesser(){};
  
  pXsltProcesser.prototype = {
    load: function(a){
      try{
        if(typeof ActiveXObject != 'undefined' && typeof GetObject != 'undefined'){
          var b = new ActiveXObject('Microsoft.XMLDOM');
          b.async = false;
          b.load(a);
          return b;
        }else if(typeof XSLTProcessor != 'undefined' && typeof XSLTProcessor.prototype.importStylesheet != 'undefined'){
          var b =  document.implementation.createDocument('', '', null);
          b.async = false;
          b.load(a);
          return b;
        }
      }catch(c){}
    },

    Parser: function(a){
      try{
        if(typeof ActiveXObject != 'undefined' && typeof GetObject != 'undefined'){
          var b = new ActiveXObject('Microsoft.XMLDOM');
          b.loadXML(a);
          return b;
        }else if(typeof DOMParser != 'undefined'){
          return(new DOMParser()).parseFromString(a, 'text/xml');
        }
      }catch(c){}
    },
    
    transformToHTML: function(xmlDoc, div, xslt){
      if(typeof xmlDoc.transformNode != 'undefined'){
        div.innerHTML = xmlDoc.transformNode(xslt);
      }else if(typeof XSLTProcessor != 'undefined' && typeof XSLTProcessor.prototype.importStylesheet != 'undefined'){
        var c = new XSLTProcessor();
        c.importStylesheet(xslt);
        var d = c.transformToFragment(xmlDoc, window.document);
        div.innerHTML = '';
        div.appendChild(d);
      }else{
        var e = of(xmlDoc, xslt);
        div.innerHTML = e;
      }
    },
    
    asynchronousTransform: function(xmlDoc, div, xsltDoc){
      if(xmlDoc == null){
        $(div).innerHTML = '';
        return;
      }
      if(typeof xsltDoc == 'string'){
        var xslt = this.Parser(xsltDoc);
      }else{
        var xslt = xsltDoc;
      }
      this.transformToHTML(xmlDoc, $(div), xslt);
    }
  }
  
  function pCacheProcesser(){
    this.cache_ = new Array();
  };

  pCacheProcesser.prototype = {
    getCached: function(a){
      return this.cache_[a];
    },
    
    cache: function(a,b){
      this.cache_[a] = b;
    }
  }
  
  function $(){
    var elements = new Array();
    for(var i = 0; i < arguments.length; i++){
      var element = arguments[i];
      if(typeof element == 'string') element = document.getElementById(element);
      if(arguments.length == 1) return element;
      elements.push(element);
    }
    return elements;
  }
  
  function pConst(){
    var w = window;
    w.pXmlHttp = pXmlHttpProcesser;
    w.pXslt = pXsltProcesser;
    w.pCache = pCacheProcesser;
    w.$ = $;
  };
  
  pConst();
  
}; PonponNamespace();

