//replace,/js/,$CATEGORY_FILE_PATH(19)
/*******************************************************************************
* 共通JS
********************************************************************************/
/*@cc_on _globaldoc=document;eval('var document=_globaldoc')@*/

//document.write('<script type="text/javascript" src="/js/prototype.js"><\/script>');

/***********************************************************/
/** 二度押し確認 */
var submitable = true; //default
function checkSubmitCtrl() {
  if (submitable == false) return false;
  submitable = false;
  return true;
}

/***********************************************************/
function submitFunction(pForm, pButton, isAjax, divID) {
  if (pButton != null) {
    addSubmitParam(pForm, pButton.name, pButton.value);
  }
  if (checkSubmitCtrl()) {
//    if (isAjax) {
//      submitMainArea(pForm);
//    } else {
//      return pForm.submit();
//    }
      if (divID) {
        ajaxRefreshPost(pForm, divID);
      } else {
        return pForm.submit();
      }
  } else {
    return false;
  }
}

/** FormSubmit btnName */
function formSubmit(form, btnName, isAjax, divID) {
  if (btnName != null) {
    addSubmitParam(form, btnName, "submit");
  }
  return submitFunction(form, null, isAjax, divID);
}

/** FormSubmit btid btname */
function formBtnSubmit(form, btid, btname, isAjax, divID) {
  var obj = $(btid);
  if (obj) obj.value = btname;
  //formSubmit(form);
  if (form) {
    return submitFunction(form, null, isAjax, divID);
  } else {
    return false;
  }
}

function addSubmitParam(pForm, pName, pValue) {
  if (pForm.method.toLowerCase() == "post") {
    if (pValue != null) {
      var hiddenElement = false;
      var formElements = Form.getInputs(pForm, '', pName);
      if (formElements.length > 0) {
        if (formElements[0].tagName.toLowerCase() == "input") {
          if (formElements[0].type.toLowerCase() != 'submit'
              && formElements[0].type.toLowerCase() != 'button'
              && formElements[0].type.toLowerCase() != 'reset'
              && formElements[0].type.toLowerCase() != 'image'
              && formElements[0].type.toLowerCase() != 'file'
              ) {
            hiddenElement = formElements[0];
          }
        }
      }
      if (hiddenElement == false) {
        // add hidden parameter
        hiddenElement=document.createElement("Input");
        hiddenElement.type="hidden";
        hiddenElement.name=pName;
        pForm.appendChild(hiddenElement);
      }
      setValue(hiddenElement, pValue);
    }
  }
}

/***********************************************************/
/** Submit確認 form btn*/
function confirmSubmitFunction(msg, form, btn, isAjax, divID) {
  if (confirm(msg)) {
    return submitFunction(form, btn, isAjax, divID);
  } else {
    return false;
  }
}

/** Submit確認 form btnName */
function confirmSubmit(msg, form, btnName, isAjax, divID) {
  if (confirm(msg)) {
    return formSubmit(form, btnName, isAjax, divID);
  } else {
    return false;
  }
}

/** Submit確認 form btn btnName */
function confirmBtnidSubmitFunction(msg, form, btid, btnName, isAjax, divID) {
  if (confirm(msg)) {
    return formBtnSubmit(form, btid, btnName, isAjax, divID);
  } else {
    return false;
  }
}

/** link確認 href */
function confirmLink(msg, url) {
  if (confirm(msg)) {
    document.location.replace(url);
  }
}

/*-------------------*/
/** 遷移 */
function goURL(url) {
// 履歴が残らないため、changed by katsu 20090726 start
//  document.location.replace(url);
  document.location.href = url;
// 履歴が残らないため、changed by katsu 20090726 end
}

/***********************************************************/
/** main_area だけ更新用のsubmit */
function submitMainArea(pForm) {
  ajaxRefreshPost(pForm, "main_area");
}

function getResDivStr(pResTxt, pDivId) {
  rtn = "";
  startIdx = 0;
  divStr = pResTxt.match("<div.*[ \t]id=['" + '"]' + pDivId + "['" + '"]' + ".*>");
  if (divStr != null) {
    if (divStr.length > 0) {
      startIdx = pResTxt.indexOf(divStr) + divStr[0].length;
      endIdx = pResTxt.indexOf("<!-- " + pDivId + " -->");
      if (endIdx >= 0 && endIdx > startIdx) {
        endIdx = endIdx - 6;  // </div>のlengthが6
        rtn = pResTxt.substring(startIdx, endIdx);
      }
    }
  }
  return rtn
}
function ajaxRefreshPost(pForm, pDivId) {
  if (pForm && (pForm.action.substr(pForm.action.length - 1, 1)) != "#") {
    var divScrollLeft = $(pDivId).scrollLeft;
    var divScrollTop = $(pDivId).scrollTop;
    var oldHtml = $(pDivId).innerHTML;
    var fromStr = Form.serialize(pForm); 
    new Ajax.Request(pForm.action, {
      method : "post",   // 注意：request.encoding:UTF-8 -> UTF-8 になり
      parameters : fromStr,
      onSuccess: function(transport){
        var resTxt = transport.responseText;
        errorPage = resTxt.indexOf('"error_area"');
        if (errorPage >= 0) {
          document.body.innerHTML = resTxt;
        } else {
          var error = true;
          mDivStr = getResDivStr(resTxt, pDivId);
          if (mDivStr != "") {
              error = false;
              $(pDivId).innerHTML = mDivStr;
              $(pDivId).scrollLeft = divScrollLeft;
              $(pDivId).scrollTop = divScrollTop;
              submitable = true;    // IEの場合、resTxt.evalScripts() 前に実行
          }
          if (!error) {
            mDivStr = getResDivStr(resTxt, "javascriptdiv");
            if (mDivStr != "") {
                mDivStr.evalScripts();
            }
          } else {
            $(pDivId).innerHTML = oldHtml;
          }
        }
      },
      onFailure: function(){
        $(pDivId).innerHTML = oldHtml;
      }
    });
    $(pDivId).innerHTML = "loading...";
  }
}

/***********************************************************/
/** html object 操作共通 */
function setValue(field, value) {
  if ((field == "undefined") || (field == null)) { return; }   // do nothing
  if (field.tagName.toLowerCase() == "input") {
    if ((field.type.toLowerCase() == "text")
        || (field.type.toLowerCase() == "password")
        || (field.type.toLowerCase() == "hidden")) {
      field.value = value;
    } else if (field.type.toLowerCase() == "checkbox") {
      if (field.value == value) {
        field.checked = true;
      } else {
        field.checked = false;
      }
    } else if (field.type.toLowerCase() == "radio") {
      if (field.value == value) {
        field.checked = true;
      } else if (value == true) {
        field.checked = true;
      } else {
        field.checked = false;
      }
    }
  } else if (field.tagName.toLowerCase() == "textarea") {
    field.value = value;
  } else if ((field.tagName.toLowerCase() == "span") || (field.tagName.toLowerCase() == "div")) {
    field.innerHTML = value;
  } else if (field.tagName.toLowerCase() == "select") {
    field.value = value;
  } else if (field.tagName.toLowerCase() == "img") {
    field.src = value;
    if (value) {
      field.style.display = "block";
    } else {
      field.style.display = "none";
    }
  }
}

/***********************************************************/
/** サブウィンドウの処理を親ウィンドウに変更 */
function drawSubToParent() {
  var parent;
  if (window.opener) {  // for window.open or dialog(FF)
    parent = window.opener;
  } else if (window.dialogArguments) {  // for dialog(IE)
    parent = window.dialogArguments;
  }
  if (parent) {
    var resTxt = document.body.innerHTML;
    parent.document.body.innerHTML = resTxt;
    self.window.close();
  }
}
