
var basepath = '/samples/tally/';

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 + 'ajax' + str,frm,disp,fnc,loader)
  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 + 'ajax' + str,disp,fnc,loader)
  loader_block(loader)
}

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

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

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

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

function allChecked(frm,v){
  var frm = document.forms[frm];
  if(!v){
    for(i = 1; i < frm.length; i++){
      frm.elements[i].checked = true;
    }
  }else{
    for(i = 1; i < frm.length; i++){
      frm.elements[i].checked = false;
    }
  }
}


/*
===================================================
  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,fnc,loader) {
      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,fnc,loader) {
      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();
