//------------------------------------------------
//IMGタグの編集
//  引数    [i] pSrc    :画像ファイル
//          [i] pAlt    :代替テキスト
//          [i] pWidth  :幅
//          [i] pHeight :高さ
//          [i] pClass  :CLASS属性
//          [i] pId     :ID属性
//          [i] pExtra  :その他
//  戻り値  編集したHTML
//          ※画像が指定されていない場合はテキストを返却
//  2009/05/22 新規作成
//  2009/09/10 M.Koyama
//------------------------------------------------
function EditImg(pSrc,pAlt,pWidth,pHeight,pClass,pId,pExtra){

    var wSrc    = "";
    var wAlt    = "";
    var wWidth  = "";
    var wHeight = "";
    var wClass  = "";
    var wId     = "";

    if(pSrc != ""){

        wSrc = " src=" + pSrc;

    }

    if(pAlt != ""){

        wAlt = " alt=" + pAlt;

    }

    if(pWidth != ""){

        wWidth = " width=" + pWidth;

    }

    if(pHeight != ""){

        wHeight = " height=" + pHeight;

    }

    if(pClass != ""){

        wClass = " class=" + pClass;

    }

    if(pId != ""){

        wId = " id=" + pId;

    }

    //画像の有無判定
    if(pSrc != ""){

        wHtml = "<img " + wSrc + wAlt + wWidth + wHeight + wClass + wId + pExtra + " />";       //pExtraの追加 2009/09/10 M.Koyama

    }else{

        //画像が指定されていない場合は何も編集しない
        wHtml = "";


    }

    //編集したHTMLを返却
    return wHtml;

}
//------------------------------------------------
//Aタグの編集
//  引数    [i] pOp :リンクの開き方
//                      0:ローカルウインドウ
//                      1:オープンウインドウ
//          [i] pStr:リンクを貼る文字列や画像
//          [i] pUrl:リンク先URL
//  戻り値  編集したHTML
//  2009/05/22  新規作成
//------------------------------------------------
function EditA(pOp,pStr,pUrl){

    var wHtml;              //HTML編集
    var wTarget;            //TARGET属性
    var wA1;                //Aタグ編集
    var wA2;                //Aタグ編集

    //リンクの開き方の判定
    if(pOp == "1"){

        wTarget = " target=_blank";

    }else{

        wTarget = "";

    }

    //URLの有無判定
    if(pUrl != ""){

        wA1 = "<a href=\"" + pUrl + "\" " + wTarget + ">";
        wA2 = "</a>";

    }else{

        wA1 = "";
        wA2 = "";

    }

    //リンク文字の有無判定
    if(pStr != ""){

        //指定された文字（画像）にリンクを貼る
        wHtml = wA1 + pStr + wA2;

    }else{

        //URLの有無判定
        if(pUrl != ""){

            //URLにリンクを貼る
            wHtml = wA1 + pUrl + wA2;

        }else{

            //何もしない
            wHtml = "";

        }

    }

    //編集したHTMLの返却
    return wHtml;

}
//------------------------------------------------
//日付の範囲チェック
//  引数    [i] pYmd   :チェック対象日付（yyyymmdd形式）
//                      指定がない場合はシステム日付（本日）とする
//          [i] pDate1 :対象範囲の開始日（yyyymmdd形式）
//          [i] pDate2 :対象範囲の終了日（yyyymmdd形式）
//  戻り値  True  :範囲内
//          False :範囲外
//  2009/05/22  新規作成
//------------------------------------------------
function BetweenDate(pYmd,pDate1,pDate2){

    var wYmd;               //チェック対象日付
    var wDate1;             //開始日
    var wDate2;             //終了日

    var wDate  = new Date();
    var wYyyy  = wDate.getFullYear();
    var wMm    = wDate.getMonth() + 1;
    var wDd    = wDate.getDate();

    //チェック対象日付の有無判定
    if(pYmd != ""){

        //引数をセット
        wYmd = pYmd;

    }else{

        //本日をセット
        wYmd = "" + wYyyy + AddZero(wMm,2) + AddZero(wDd,2);

    }

    //開始日の有無判定
    if(pDate1 != ""){

        //引数をセット
        wDate1 = pDate1;

    }else{

        //最小値をセット
        wDate1 = "00000000";

    }

    //終了日の有無判定
    if(pDate2 != ""){

        //引数をセット
        wDate2 = pDate2;

    }else{

        //最大値をセット
        wDate2 = "99999999";

    }

    //範囲内かどうかの判定
    if(wDate1 <= wYmd && wYmd <= wDate2){

        //範囲内
        return true;

    }else{

        //範囲外
        return false;

    }

}
//----------------------------------------------------
//年月の加減算
//  引数    [i] pOp        :オプション
//                          -1:前月
//                           1:次月
//          [i] pYyyyMm    :対象年月
//  戻り値  計算後の年月文字列（yyyymm形式）
//----------------------------------------------------
function CalcMonth(pOp,pYyyyMm){

    var wYyyyMm = "";
    var wYyyy   = pYyyyMm.substring(0,4);
    var wMm     = pYyyyMm.substring(4,6);

    var wNext;

    //オプションの判定
    if(pOp == 1){

        //翌月の場合
        if(wMm == "12"){

            wNext = parseInt(wYyyy,10) + 1;

            wYyyyMm = "" + wNext + "01";

        }else{

            wNext = parseInt(wMm,10) + 1;

            wYyyyMm = "" + wYyyy + AddZero(wNext,2);

        }

    }else{

        //前月の場合
        if(wMm == "01"){

            wNext = parseInt(wYyyy,10) - 1;

            wYyyyMm = "" + wNext + "12";

        }else{

            wNext = parseInt(wMm,10) - 1;

            wYyyyMm = "" + wYyyy + AddZero(wNext,2);

        }

    }

    return wYyyyMm;

}
//----------------------------------------------------
//日付の表示形式
//  引数    [i] pOp   :オプション
//                      0:スラッシュ編集
//                      1:西暦編集（漢字）
//                      2:和暦編集（漢字）
//                      3:和暦編集（略称）
//          [i] pType :表示形式
//          [i] pYmd  :日付（YYYYMMDD）
//  戻り値  編集した日付
//  2009/05/22  新規作成
//----------------------------------------------------
function DateFormat(pOp,pType,pYmd){

    var wYmd;

    var wYyyy;      //西暦（4桁）
    var wYy;        //西暦（下2桁）
    var wMm;        //月（前ゼロあり）
    var wM;         //月（前ゼロなし）
    var wDd;        //日（前ゼロあり）
    var wD;         //日（前ゼロなし）

    var wGengoNm;   //元号
    var wGengoRk;   //略称
    var wWareki;    //和暦

    var wStr;

    //空白チェック
    if(pYmd == ""){

        return "";

    }

    //YYYYMMDD形式チェック
    if(pYmd.length == 4){

        //YYYY指定と見なして年初を設定
        wYmd = pYmd + "0101";

    }else if(pYmd.length == 6){

        //YYYYMM指定と見なして月初を設定
        wYmd = pYmd + "01";

    }else if(pYmd.length == 8){

        //YYYYMMDD指定と見なして引数を設定
        wYmd = pYmd;

    }else{

        //形式エラーの場合は引数をそのまま返却
        return pYmd;

    }

    //西暦の取得
    wYyyy = wYmd.substring(0,4);
    wYy   = wYyyy.substring(2,4);
    wMm   = wYmd.substring(4,6);
    wM    = "" + parseInt(wMm,10);
    wDd   = wYmd.substring(6,8);
    wD    = "" + parseInt(wDd,10);

    //和暦の取得
    if(Number(wYmd) < 19120730) {

        wGengoNm = "明治";
        wGengoRk = "M";
        wWareki  = parseInt(wYmd.substring(0,4),10) - 1867;

    } else if(Number(wYmd)< 19261225) {

        wGengoNm = "大正";
        wGengoRk = "T";
        wWareki  = parseInt(wYmd.substring(0,4),10) - 1911;

    } else if(Number(wYmd)<=19890107) {

        wGengoNm = "昭和";
        wGengoRk = "S";
        wWareki  = parseInt(wYmd.substring(0,4),10) - 1925;

    } else {

        wGengoNm = "平成";
        wGengoRk = "H";
        wWareki  = parseInt(wYmd.substring(0,4),10) - 1988;

    }

    //オプションの判定
    switch(pOp){
    case 1:

        //表示形式の判定
        switch(pType){
        case "YYYY/MM/DD":wStr = wYyyy + "年" + wMm + "月" + wDd + "日";break;
        case "YYYY/M/D"  :wStr = wYyyy + "年" + wM  + "月" + wD  + "日";break;
        case "YY/MM/DD"  :wStr = wYy   + "年" + wMm + "月" + wDd + "日";break;
        case "YY/M/D"    :wStr = wYy   + "年" + wM  + "月" + wD  + "日";break;
        case "YYYY/MM"   :wStr = wYyyy + "年" + wMm + "月";             break;
        case "YYYY/M"    :wStr = wYyyy + "年" + wM  + "月";             break;
        case "YY/MM"     :wStr = wYy   + "年" + wMm + "月";             break;
        case "YY/M"      :wStr = wYy   + "年" + wM  + "月";             break;
        case "YYYY"      :wStr = wYyyy + "年";                          break;
        case "YY"        :wStr = wYy   + "年";                          break;
        case "MM"        :wStr = wMm + "月";                            break;
        case "M"         :wStr = wM  + "月";                            break;
        case "MM/DD"     :wStr = wMm + "月" + wDd + "日";               break;
        case "M/D"       :wStr = wM  + "月" + wD  + "日";               break;
        case "DD"        :wStr = wDd + "日";                            break;
        case "D"         :wStr = wD  + "日";                            break;
        }

        break;

    case 2:

        //表示形式の判定
        switch(pType){
        case "YYYY/MM/DD":wStr = wGengoNm + wWareki + "年" + wMm + "月" + wDd + "日";break;
        case "YYYY/M/D"  :wStr = wGengoNm + wWareki + "年" + wM  + "月" + wD  + "日";break;
        case "YY/MM/DD"  :wStr = wGengoNm + wWareki + "年" + wMm + "月" + wDd + "日";break;
        case "YY/M/D"    :wStr = wGengoNm + wWareki + "年" + wM  + "月" + wD  + "日";break;
        case "YYYY/MM"   :wStr = wGengoNm + wWareki + "年" + wMm + "月";             break;
        case "YYYY/M"    :wStr = wGengoNm + wWareki + "年" + wM  + "月";             break;
        case "YY/MM"     :wStr = wGengoNm + wWareki + "年" + wMm + "月";             break;
        case "YY/M"      :wStr = wGengoNm + wWareki + "年" + wM  + "月";             break;
        case "YYYY"      :wStr = wGengoNm + wWareki + "年";                          break;
        case "YY"        :wStr = wGengoNm + wWareki + "年";                          break;
        case "MM"        :wStr = wMm + "月";                                         break;
        case "M"         :wStr = wM  + "月";                                         break;
        case "MM/DD"     :wStr = wMm + "月" + wDd + "日";                            break;
        case "M/D"       :wStr = wM  + "月" + wD  + "日";                            break;
        case "DD"        :wStr = wDd + "日";                                         break;
        case "D"         :wStr = wD  + "日";                                         break;
        }

        break;

    case 3:

        //表示形式の判定
        switch(pType){
        case "YYYY/MM/DD":wStr = wGengoRk + wWareki + "/" + wMm + "/" + wDd;break;
        case "YYYY/M/D"  :wStr = wGengoRk + wWareki + "/" + wM  + "/" + wD ;break;
        case "YY/MM/DD"  :wStr = wGengoRk + wWareki + "/" + wMm + "/" + wDd;break;
        case "YY/M/D"    :wStr = wGengoRk + wWareki + "/" + wM  + "/" + wD ;break;
        case "YYYY/MM"   :wStr = wGengoRk + wWareki + "/" + wMm;            break;
        case "YYYY/M"    :wStr = wGengoRk + wWareki + "/" + wM ;            break;
        case "YY/MM"     :wStr = wGengoRk + wWareki + "/" + wMm;            break;
        case "YY/M"      :wStr = wGengoRk + wWareki + "/" + wM ;            break;
        case "YYYY"      :wStr = wGengoRk + wWareki;                        break;
        case "YY"        :wStr = wGengoRk + wWareki;                        break;
        case "MM"        :wStr = wMm;                                       break;
        case "M"         :wStr = wM ;                                       break;
        case "MM/DD"     :wStr = wMm + "/" + wDd;                           break;
        case "M/D"       :wStr = wM  + "/" + wD ;                           break;
        case "DD"        :wStr = wDd;                                       break;
        case "D"         :wStr = wD ;                                       break;
        }

        break;

    default:

        //表示形式の判定
        switch(pType){
        case "YYYY/MM/DD":wStr = wYyyy + "/" + wMm + "/" + wDd;break;
        case "YYYY/M/D"  :wStr = wYyyy + "/" + wM  + "/" + wD; break;
        case "YY/MM/DD"  :wStr = wYy   + "/" + wMm + "/" + wDd;break;
        case "YY/M/D"    :wStr = wYy   + "/" + wM  + "/" + wD; break;
        case "YYYY/MM"   :wStr = wYyyy + "/" + wMm;            break;
        case "YYYY/M"    :wStr = wYyyy + "/" + wM;             break;
        case "YY/MM"     :wStr = wYy   + "/" + wMm;            break;
        case "YY/M"      :wStr = wYy   + "/" + wM;             break;
        case "YYYY"      :wStr = wYyyy;                        break;
        case "YY"        :wStr = wYy;                          break;
        case "MM"        :wStr = wMm;                          break;
        case "M"         :wStr = wM ;                          break;
        case "MM/DD"     :wStr = wMm + "/" + wDd;              break;
        case "M/D"       :wStr = wM  + "/" + wD ;              break;
        case "DD"        :wStr = wDd;                          break;
        case "D"         :wStr = wD ;                          break;
        }

        break;

    }

    //編集した日付を返却
    return wStr;

}
//----------------------------------------------------
//時間の表示形式
//  引数    [i] pOp   :オプション
//                      0:コロン編集
//                      1:漢字編集
//          [i] pType :表示形式
//          [i] pTime :日付（YYYYMMDD）
//  戻り値  編集した時間
//----------------------------------------------------
function TimeFormat(pOp,pType,pTime){

    var wTime;

    var wHh;        //時（前ゼロあり）
    var wH;         //時（前ゼロなし）
    var wMi;        //分（前ゼロあり）
    var wM;         //分（前ゼロなし）

    var wStr;

    //空白チェック
    if(pTime == ""){

        return "";

    }

    //HHMI形式チェック
    if(pTime.length == 2){

        //HH指定と見なして00分を設定
        wTime = pTime+ "00";

    }else if(pTime.length == 4){

        //HHMI指定と見なして引数を設定
        wTime = pTime;

    }else{

        //形式エラーの場合は引数をそのまま返却
        return pTime;

    }

    //時分の取得
    wHh = wTime.substring(0,2);
    wH  = "" + parseInt(wHh,10);
    wMi = wTime.substring(2,4);
    wM  = "" + parseInt(wMi,10);

    //午前午後の取得
    if(Number(wHh) < 12) {

        wAmPmNm = "午前";
        wAmPmRk = "AM";

    } else {

        wAmPmNm = "午後";
        wAmPmRk = "PM";

        //午前午後を明記するため13時→1時のように変換
        wHh = AddZero("" + parseInt(Number(wHh) - 12,10),2);
        wH  = "" + parseInt(wHh,10);

    }

    //オプションの判定
    switch(pOp){
    case 1:

        //表示形式の判定
        switch(pType){
        case "HH:MI"     :wStr = wAmPmNm + wHh + "時" + wMi + "分"; break;
        case "H:MI"      :wStr = wAmPmNm + wH  + "時" + wMi + "分"; break;
        case "H:M"       :wStr = wAmPmNm + wH  + "時" + wM  + "分"; break;
        case "HH"        :wStr = wAmPmNm + wHh + "時";              break;
        case "H"         :wStr = wAmPmNm + wH  + "時";              break;
        }

        break;

    default:

        //表示形式の判定
        switch(pType){
        case "HH:MI"     :wStr = wAmPmNm + wHh + ":" + wMi; break;
        case "H:MI"      :wStr = wAmPmNm + wH  + ":" + wMi; break;
        case "H:M"       :wStr = wAmPmNm + wH  + ":" + wM ; break;
        case "HH"        :wStr = wAmPmNm + wHh;             break;
        case "H"         :wStr = wAmPmNm + wH ;             break;
        }

        break;

    }

    //編集した時間を返却
    return wStr;

}
//------------------------------------------------
//曜日の編集
//  引数    [i] pYobiNo :曜日番号
//                          0:日
//                          1:月
//                          2:火
//                          3:水
//                          4:木
//                          5:金
//                          6:土
//  戻り値  編集した曜日
//------------------------------------------------
function GetYobiName(pYobiNo){

    var wYobiName = "";

    //曜日ラベルの判定
    switch(C_LABEL_YOBI){
    case 0:
        switch(pYobiNo){
        case 0:wYobiName = "SUN";break;
        case 1:wYobiName = "MON";break;
        case 2:wYobiName = "TUE";break;
        case 3:wYobiName = "WED";break;
        case 4:wYobiName = "THU";break;
        case 5:wYobiName = "FRI";break;
        case 6:wYobiName = "SAT";break;
        }
        break;
    case 1:
        switch(pYobiNo){
        case 0:wYobiName = "日";break;
        case 1:wYobiName = "月";break;
        case 2:wYobiName = "火";break;
        case 3:wYobiName = "水";break;
        case 4:wYobiName = "木";break;
        case 5:wYobiName = "金";break;
        case 6:wYobiName = "土";break;
        }
        break;
    case 2:
        switch(pYobiNo){
        case 0:wYobiName = "日曜日";break;
        case 1:wYobiName = "月曜日";break;
        case 2:wYobiName = "火曜日";break;
        case 3:wYobiName = "水曜日";break;
        case 4:wYobiName = "木曜日";break;
        case 5:wYobiName = "金曜日";break;
        case 6:wYobiName = "土曜日";break;
        }
        break;
    }

    //編集した曜日の返却
    return wYobiName;

}
//------------------------------------------------
//曜日番号の取得
//  引数    [i] pYmd :対象年月日
//  戻り値  曜日番号
//------------------------------------------------
function GetYobiNo(pYmd){

    var wYyyy = pYmd.substring(0, 4);
    var wMm   = pYmd.substring(4, 6);
    var wDd   = pYmd.substring(6, 8);
    var wDate = new Date(wYyyy + "/" + wMm + "/" + wDd);

    //曜日番号を返却
    return wDate.getDay();

}
//------------------------------------------------
//前ゼロ付加
//  引数    [i] pNum  :前ゼロを付加する文字列
//          [i] pKeta :全体の桁数
//------------------------------------------------
function AddZero(pNum,pKeta) {

    var wNum = "" + pNum;
    var wIdx;
    var wLen = pKeta - wNum.length;

    if(wNum != ""){

        if(wLen < pKeta){

            for(wIdx=1; wIdx<=wLen; wIdx++){

                wNum = "0" + wNum;

            }

        }

    }

    return wNum;

}

