
var basepath = '/ids_sample/';

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=/";
   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 sd(type,frm,id,opt,disp,loader,fnc){
  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("&")
  var xmlhttp = new pXmlHttp()
  xmlhttp.setMethod("post");
  xmlhttp.send(basepath + '?q=ajax&' + str,frm,disp,loader,fnc)
  loader_block(loader)
}

function op(type,id,opt,disp,loader,fnc){
  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("&")
  var xmlhttp = new pXmlHttp()
  xmlhttp.getHtml(basepath + '?q=ajax&' + str,disp,loader,fnc)
  loader_block(loader)
}

function gh(type,str,disp,loader,fnc){
  var xmlhttp = new pXmlHttp()
  xmlhttp.getHtml(basepath + '?q=ajax&type=' + type + '&' + str,disp,loader,fnc)
  loader_block(loader)
}

function gt(type,str,fnc){
  var xmlhttp = new pXmlHttp();
  xmlhttp.getText(basepath + '?q=ajax&type=' + type + '&' + str,fnc);
}

function loader_block(loader){
  if(document.getElementById(loader)){
    document.getElementById(loader).style.display = 'block';
  }
}

function floatdisp(){
  if(document.getElementById('floatdisp')){
    sy = (document.body.scrollTop || document.documentElement.scrollTop) + 150;
    document.getElementById('floatdisp').style.top = sy + 'px';
    document.getElementById('floatdisp').style.display = 'block';
  }
}

function set_key(v){
  if(!v) var v = ''
  setCookie('skey',v,1/24/60*20)
}

function cg(n,v,path){
  if(!n) return
  if(!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(varr[0] != n && varr[0] != 'p' && varr[0] != 'm'){
        g.push(garr[i])
      }else if(varr[1] == encodeURIComponent(v)){
        var same = 1
      }
    }
  }
  if(!same){
    g.push(n + '=' + encodeURIComponent(v))
  }
  if(path != undefined){
    location.href = basepath + path + '?' + g.join('&');
  }else{
    location.href = '?' + g.join('&');
  }
}

function tg(id,id2) {
  if(typeof(id) == 'object'){
    var el = id;
  }else{
    var el = document.getElementById(id);
  }
  if(typeof(id2) == 'object'){
    var el2 = id2;
  }else{
    var el2 = document.getElementById(id2);
  }
  if (el.style.display != 'none'){
    el.style.display = 'none';
    if(el2) el2.style.display = '';
  }else{
    el.style.display = '';
    if(el2) el2.style.display = 'none';
  }
}

function hide(id) {
  if(typeof(id) == 'object'){
    var el = id;
  }else{
    var el = document.getElementById(id);
  }
  el.style.display = 'none'
}

function file_check_delete(no,self){
  if(!window.confirm('削除しちゃうけど')){
    self.checked = false;
    return
  }
  op('file|del',no,'','fileview');
  if(self){tg(self)}
}

function tag(tid){
  cookie_type('ids',tid,3)
  op('data|list_view',tid,'','mainList','mainloader',tag_refresh)
  gt('tag|click','id=' + tid)
}

function tag_refresh(){
  op('tag|view','','','sidebar','mainloader')
}

function tagset(v,no){
  cookie_type('ids',v,no)
  tag_refresh()
}

function tagput(v){
  var frm = document.getElementById('tag');
  frm.value = frm.value + ' ' + v;
}

function cookie_type(type,set,no){
  var c = new Array(5)
  if(getCookie(type)){
    c = getCookie(type).split('-');
  }
  c[no] = set;
  c = c.join('-');
  setCookie(type,c,365);
}

/*
===================================================
  paella.js ---- cross-browser ponpon Ajax Engine
  Copyright 2005 ponpon <ponpon@ponpon-village.net>
  URL http://ponpon-village.net/
===================================================
*/

function PonponNamespace(){
  var httpObj;
  
  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();
          }
        }
      };

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

    getHtml: function(url,div,loader,fnc){
      var proc = function(xmlhttp){
        var disp = $(div);
        disp.innerHTML = xmlhttp.responseText;
        if(fnc){
          fnc();
        }
        if(loader && document.getElementById(loader)){
          document.getElementById(loader).style.display = 'none';
        }
        if(div && document.getElementById(div)){
          document.getElementById(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,loader,fnc){
      this.check(this.create);

      frm = document.getElementById(frm);
      var postdata = this.dataset(frm);
      if(postdata.length = 0){
        window.alert("送信するデータがありません。");
        return false;
      }

      var proc = function(xmlhttp){
        var disp = $(div);
        disp.innerHTML = xmlhttp.responseText;
        if(fnc){
          fnc();
        }
        if(loader && document.getElementById(loader)){
          document.getElementById(loader).style.display = 'none';
        }
        if(div && document.getElementById(div)){
          document.getElementById(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("送信するデータがありません。");
        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){
          postdata += "&";
          postdata += frm.elements[i].name;
          postdata += "=";
          postdata += 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{
          httpObj = new ActiveXObject(ms[x]);
          return httpObj;
        }catch(e){}
      }
    }
    if(typeof XMLHttpRequest != "undefined"){
      httpObj = new XMLHttpRequest();
      return httpObj;
    }
    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();

