
/**********************************************************************************

* ■■■ 指定リストの操作一覧スクリプト群 ■■■
* FileName : List.js
* update   : 2005.7.01
* Draw up  : K.SETO
* 
*********************************************************************************/

/**********************************************************************************
* ■■■ 指定リストから指定文字列を検索するスクリプト ■■■
* function : fListFind
* update   : 2005.7.01
* 
* ●指定リストはfDelimで区切らなければならない
* ●リスト中に指定文字列が含まれる場合は、一番最初に見つかった位置を返す
* ●リスト中に指定文字列が見つからない場合は、0を返す
* 
*********************************************************************************/

function fListFind(fList,fTargetString,fDelim){
    var jSearch = 0;

    if(fList.length > 0){
        for(var i=1; i <= fListLen(fList,fDelim); i++){
            if(fListGetAt(fList,i,fDelim) == fTargetString){
                var jSearch = i;
                break;
            }
        }
    }

    return jSearch;
}

/**********************************************************************************
* ■■■ 指定リストの長さを返すスクリプト ■■■
* function : fListLen
* update   : 2005.7.01
* 
* ●指定リストはfDelimで区切らなければならない
* ●指定リストの長さを返す（リストが無い場合は0を返す）
* 
*********************************************************************************/
function fListLen(fList,fDelim){
    var jLen = 0;

    if(fList.length > 0){
        jLen = jLen + 1;

        for(var i=0; i < fList.length; i++){
            if(fList.substring(i,i+1) == fDelim)
                jLen = jLen + 1;
        }
    }

    return jLen;
}

/**********************************************************************************
* ■■■ 指定リストから指定インデックスの文字列を抽出するスクリプト ■■■
* function : fListGetAt
* update   : 2005.7.01
* 
* ●指定リストはfDelimで区切らなければならない
* ●先頭のリストインデックスは0とする
* ●リストの長さ以上のインデックスが指定された場合は空を返す
* 
*********************************************************************************/

function fListGetAt(fList,fIndex,fDelim){
    var jString = '';
    var jIndexCnt = 0;

    if(fIndex <= fListLen(fList,fDelim)){
        if(fList.length > 0){
            jIndexCnt = jIndexCnt + 1;

            for(var i=0; i < fList.length; i++){
                if(fList.substring(i,i+1) == fDelim){
                    if(jIndexCnt == fIndex)
                        break;

                    jIndexCnt = jIndexCnt + 1;
                    jString = '';
                }
                else
                    jString = jString + fList.substring(i,i+1);
            }
        }
    }
    return jString;
}

/**********************************************************************************
* ■■■ 指定リストに指定文字列を追加するスクリプト ■■■
* function : fListAppend
* update   : 2005.7.01
* 
* ●指定リストはfDelimで区切らなければならない
* ●リストの最後に追加される
* 
*********************************************************************************/

function fListAppend(fList,fString,fDelim){
    if(fListLen(fList,fDelim) > 0)
        fList = fList + fDelim + fString;
    else
        fList = fString;

    return fList;
}

/**********************************************************************************
* ■■■ 指定リストから、指定位置にあるリストを削除するスクリプト ■■■
* function : fListDeleteAt
* update   : 2005.7.01
* 
* ●指定リストはfDelimで区切らなければならない
* ●リストから指定位置のリストを削除する
* 
*********************************************************************************/

function fListDeleteAt(fList,fIndex,fDelim){
    var jNewList = '';

    if(fIndex <= fListLen(fList,fDelim)){
        for(var i=1; i <= fListLen(fList,fDelim); i++){
            if(i != fIndex)
                jNewList = fListAppend(jNewList,fListGetAt(fList,i,fDelim),fDelim);
        }
    }
    return jNewList;
}

