//*************************************************************
//システム名     落札結果通知書発行画面
//サブシステム名 発注者
/**
 * 落札結果通知書発行画面
 * @author NEC
 * @version 1.0, 2002.07.23, 新規作成
 * @version 3.1, 2003.08.29, 立会署名省略可能対応
 * @version 3.1, 2002.09.01, V3.1-総合-004
 * @version 3.1, 2003.08.25, 乱数署名のオプション化対応
 * @version 3.1, 2003.10.11, 立会署名省略可能対応オプション追加
 */
//*************************************************************

//-------------------------------------------------------------
// ページ読込時処理
//-------------------------------------------------------------
function onStart()
{
  onLoad();
}//onStart

//-------------------------------------------------------------
// 執行担当者署名処理
//-------------------------------------------------------------
function executionSign()
{
  if( !prepareDispatch(document.formRegist,'H5473HTS015') )
  {
    return;
  }

  // 要求処理名"multiOperator"を送信フォームにセットする。
  document.formRegist.omeBeforeRequestName.value="multiOperator";

  /* ICカード変更確認結果を返す。 */
  begin();
  execute("Utils.isIcCardChanged(script:'IcCardCheckResult')");
  commit();

  begin();

  // XML執行担当者署名コマンドを呼び出す
  execute("MultiSign.sign(script:'UnsignedXml', script:'SignedXml')");

  // 執行担当官氏名をセットする
  execute("copyString(userName, script:'SignedOfficerName')");

  /* 共通アプレットのプロパティにomeBeforeRequestNameを登録する */
  execute("copyString(value:'" + getBeforeRequestName() + "', omeBeforeRequestName)");

  // 乱数署名コマンドを呼び出す
  execute("RandomSign.sign(script:'SignedRandomKey')");

  // submitSignedXML
  execute("callScript(value:'submitSignedXml')");

  commit();
}//executionSign

//-------------------------------------------------------------
// 立会担当者署名処理
//-------------------------------------------------------------
function attesterSign()
{
  if( !prepareDispatch( document.formRegist, 'H5474HTS015' ) )
  {
    return;
  }

  // 要求処理名"multiObserver"を送信フォームにセットする。
  document.formRegist.omeBeforeRequestName.value="multiObserver";

  /* ICカード変更確認結果を返す。 */
  begin();
  execute("Utils.isIcCardChanged(script:'IcCardCheckResult')");
  commit();

  begin();

  // XML立会担当者署名コマンドを呼び出す
  execute("MultiSign.signObserver(script:'UnsignedXml', script:'SignedXml')");

  // 立会担当官氏名をセットする
  execute("copyString(userName, script:'SignedOfficerName')");

  /* 共通アプレットのプロパティにomeBeforeRequestNameを登録する */
  execute("copyString(value:'" + getBeforeRequestName() + "', omeBeforeRequestName)");

  // 乱数署名コマンドを呼び出す
  execute("RandomSign.sign(script:'SignedRandomKey')");

  // submitSignedXML
  execute("callScript(value:'submitSignedXml')");

  commit();
}//attesterSign

//-------------------------------------------------------------
// 立会担当者署名処理(署名省略、名前必須)
// 署名をつけずに、名前のみを入力させる
//-------------------------------------------------------------
function attesterName()
{
  if( !prepareDispatch( document.formRegist, 'H5474HTS015' ) )
  {
    return;
  }

  // 要求処理名"multiObserver"を送信フォームにセットする。
  document.formRegist.omeBeforeRequestName.value="multiObserver";

  /* ICカード変更確認結果を返す。 */
  begin();
  execute("Utils.isIcCardChanged(script:'IcCardCheckResult')");
  commit();

  begin();

  // PIN番号入力ダイアログ表示
  execute("MultiSign.inputPinNo()");

  // 立会署名不可前のxmlデータを送信用のxmlデータに登録する。
  document.formRegist.xmlData.value = document.formXml.xmlData.value;

  // 立会担当官氏名をセットする
  execute("copyString( userName, script:'SignedOfficerName')");

  /* 共通アプレットのプロパティにomeBeforeRequestNameを登録する */
  execute("copyString( value:'" + getBeforeRequestName() + "', omeBeforeRequestName)");

  // 乱数署名コマンドを呼び出す
  execute("RandomSign.sign(script:'SignedRandomKey')");

  // submitXML
  execute("callScript(value:'submitSignedXml')");

  commit();
}//attesterName

//-------------------------------------------------------------
// 通知書発行処理
//-------------------------------------------------------------
function issueNotice()
{
  if( !prepareDispatch( document.formRegist, 'H5475HPR004' ) )
  {
    return;
  }

  //立会担当署名省略可否フラグが1（省略可能）で、
  //立会担当署名が無い場合0（署名日時で判断）、確認メッセージを表示する
  var attesterSignFlag = getAttesterSignFlag();
  var attesterNameSigned = getAttesterNameSigned();
  if(attesterSignFlag == "1" && attesterNameSigned == "0"){     
    ret = confirm("立会担当者の署名が行われていません。\n処理を続けますか？");
    if(!ret){
      resetCommandFormObj();
      return;
    }
  }

  // 要求処理名"multiRegist"を送信フォームにセットする。
  document.formRegist.omeBeforeRequestName.value="multiRegist";

  /* ICカード変更確認結果を返す。 */
  begin();
  execute("Utils.isIcCardChanged(script:'IcCardCheckResult')");
  commit();

  begin();

  // 入札結果登録コマンドを呼び出す
  execute("MultiSign.signRegist(script:'UnsignedXml', script:'SignedXml')");

  // 担当官氏名をセットする
  execute("copyString(userName, script:'SignedOfficerName')");

  /* 共通アプレットのプロパティにomeBeforeRequestNameを登録する */
  execute("copyString(value:'" + getBeforeRequestName() + "', omeBeforeRequestName)");

  // 乱数署名コマンドを呼び出す
  execute("RandomSign.sign(script:'SignedRandomKey')");

  // submitSignedXML
  execute("callScript(value:'submitCall')");

  commit();
}//issueNotice

//-------------------------------------------------------------
// 送信処理
//-------------------------------------------------------------
function submitSignedXml()
{
  if( getSignedOfficerName()==null || getSignedOfficerName()=="" )
  {
    alert("氏名を入力して下さい.");
    resetCommandFormObj();
  }
  else
  {
    submitCall();
  }
}//submitSignedXml

//-------------------------------------------------------------
// 未署名XML取得
//-------------------------------------------------------------
function getUnsignedXml() { return document.formXml.xmlData.value; }

//-------------------------------------------------------------
// 署名済XML設定
//-------------------------------------------------------------
function setSignedXml( xml ) { document.formRegist.xmlData.value=xml; }

//-------------------------------------------------------------
// 署名者名称取得
//-------------------------------------------------------------
function getSignedOfficerName() { return document.formRegist.dutyOfficerName.value; }

//-------------------------------------------------------------
// 署名者名称設定
//-------------------------------------------------------------
function setSignedOfficerName( name ) { document.formRegist.dutyOfficerName.value=name; }

//-------------------------------------------------------------
// 調達案件一覧へ戻る
//-------------------------------------------------------------
function onReturn() { dispatch(document.formRegist,'H502HPD001'); }

//-------------------------------------------------------------
// 不落随契日時入力画面表示
//-------------------------------------------------------------
function moveToInputEstimateDate()
{
  var moveTo;

  if( document.commonData.runOnce.value!="1" )
  {
    top.data.common.randomSessionKey.value=document.common.randomSessionKey.value;
    document.commonData.runOnce.value="1";
    moveTo=true;
  }
  else
  {
    moveTo=confirm("不落随契日時入力画面へ移動しますか？");
  }

  document.common.randomSessionKey.value=top.data.common.randomSessionKey.value;

  /* ICカード変更確認結果を返す。 */
  begin();
  execute("Utils.isIcCardChanged(script:'IcCardCheckResult')");
  commit();

  dispatchOk=false;
  begin();
  preProcess();
  execute("callScript(value:'resetCommandFormObj')");

  if( moveTo )
  {
    execute("callScript(value:'submitInputEstimateDate')");
    /* 共通アプレットのプロパティにomeBeforeRequestNameを登録する */
    execute("copyString(value:'" + getBeforeRequestName() + "', omeBeforeRequestName)");
    execute("RandomSign.sign(script:'SignedRandomKey')");
    execute("callScript(value:'submitCallIfSuccess')");
  }

  commit();
}//moveToInputEstimateDate

//-------------------------------------------------------------
// 不落随契日時入力画面表示
//-------------------------------------------------------------
var dispatchOk;
function submitInputEstimateDate()
{
  if( !prepareDispatch( document.formRegist, 'H555HTS023' ) )
  {
    dispatchOk=false;
  }
  else
  {
    dispatchOk=true;
  }
}//submitInputEstimateDate

//-------------------------------------------------------------
// 不落随契日時入力画面表示
//-------------------------------------------------------------
function submitCallIfSuccess()
{
  if( dispatchOk )
  {
    submitCall();
  }
}//submitCallIfSuccess

//-------------------------------------------------------------
// 立会署名省略可否フラグ取得
//-------------------------------------------------------------
function getAttesterSignFlag() { return document.formProject.attesterSignFlag.value; }

//-------------------------------------------------------------
// 立会署名の有無取得
//-------------------------------------------------------------
function getAttesterNameSigned() { return document.formProject.attesterNameSigned.value; }

