/*********** 共通 ***********/

/**
 * フォーカス移動
 *
 * 例 onKeyDown="nextFocus(hoge);"
 *
 */
function nextFocus(event,obj) {
  var e = event;
  if(e.keyCode == 13) {
    // キーコードが13(エンターキー)の場合、
    // 指定されたオブジェクトにフォーカスを移動する
    obj.focus();
    e.returnValue = false;
    return false;
  }
}

/**
 * 文字列を省略する
 * @arg  text  省略する文字列
 * @arg  len  半角文字数で指定
 * @arg  truncation  省略時の文字列
 */
function substr(text, len, truncation) {
  var count = 0;
  var str = '';
  for (i=0; i < text.length; i++) {
    n = escape(text.charAt(i));
    if (n.length < 4) count++; else count+=2;
    if (count > len) {return str+truncation;}
    str += text.charAt(i);
  }
  return text;
}

/**
 * Ajaxリクエスト Exception用
 */
function checkException(req,exc)
{
//    console.log('エラー!');
//    console.log(exc);
}

/**
 * メーカ名頭文字ドロップダウンの変更
 * @arg makerCapitalDropId  メーカ名頭文字ドロップダウンのID
 * @arg makerDropId  メーカ名ドロップダウンのID
 * @arg adult  アダルトフラグ
 */
function changeMakerCapital(makerCapitalDropId, makerDropId, adult)
{
    if(typeof adult =="undefined") adult = '';
    // 選択された頭文字を取得
    capital = $(makerCapitalDropId).value;

    // Ajaxオブジェクト生成
    new Ajax.Request('index.php',
                        {'method': 'get',
                         'parameters': 'action=util_dropmaker_item&dropid='+makerDropId+'&capital='+capital+'&adult='+adult,
                        onException: checkException,
                        onComplete: updateMakerDrop });
}

/**
 * メーカ名頭文字ドロップダウンの変更
 * ドロップダウン追加時にメーカー名を切り取り
 * @arg makerCapitalDropId  メーカ名頭文字ドロップダウンのID
 * @arg makerDropId  メーカ名ドロップダウンのID
 * @arg adult  アダルトフラグ
 */
function changeMakerCapitalTrim(makerCapitalDropId, makerDropId, adult)
{
    if(typeof adult =="undefined") adult = '';
    // 選択された頭文字を取得
    capital = $(makerCapitalDropId).value;

    // Ajaxオブジェクト生成
    if(adult==7){    // イメージメーカー
      new Ajax.Request('index.php', 
                        {'method': 'get', 
                         'parameters': 'action=util_dropmaker_imagevideo&dropid='+makerDropId+'&capital='+capital+'&exist=1'+'&adult='+adult,
                        onException: checkException,
                        onComplete: updateMakerDropTrim });
    } else {        // アダルトメーカー
        new Ajax.Request('index.php',
                        {'method': 'get',
                         'parameters': 'action=util_dropmaker_item&dropid='+makerDropId+'&capital='+capital+'&adult='+adult,
                        onException: checkException,
                        onComplete: updateMakerDropTrim });
    }
}

/**
 * 買取メーカ名頭文字ドロップダウンの変更
 * @arg makerCapitalDropId  メーカ名頭文字ドロップダウンのID
 * @arg makerDropId  メーカ名ドロップダウンのID
 * @arg typediv  メーカー種別
 */
function changeKaitoriMakerCapital(makerCapitalDropId, makerDropId, typediv)
{
    if(typeof adult =="undefined") adult = '';
    // 選択された頭文字を取得
    capital = $(makerCapitalDropId).value;

    // Ajaxオブジェクト生成
    new Ajax.Request('index.php',
                        {'method': 'get',
                         'parameters': 'action=util_dropmaker_kaitori&dropid='+makerDropId+'&capital='+capital+'&typediv='+typediv,
                        onException: checkException,
                        onComplete: updateMakerDrop });
}

/**
 * メーカ名ロード時
 * @arg makerDropId  メーカ名ドロップダウンのID
 * @arg makerCapitalId  メーカ名頭文字の値
 * @arg makerId  メーカ名の値
 * @arg adult  アダルトフラグ
 */
function loadMaker(makerDropId, makerCapitalId, makerId, adult)
{
    if(typeof adult =="undefined") adult = '';
    // Ajaxオブジェクト生成
    new Ajax.Request('index.php',
                        {'method': 'get',
                         'parameters': 'action=util_dropmaker' +
                                       '&dropid=' + makerDropId + 
                                       '&capital=' + makerCapitalId +
                                       '&selid=' + makerId +
                                       '&adult=' + adult,
                        onException: checkException,
                        onComplete: updateMakerDrop });
}

/**
 * メーカ名ロード時
 * 追加時にメーカー名を切り取り
 * @arg makerDropId  メーカ名ドロップダウンのID
 * @arg makerCapitalId  メーカ名頭文字の値
 * @arg makerId  メーカ名の値
 * @arg adult  アダルトフラグ
 */
function loadMakerTrim(makerDropId, makerCapitalId, makerId, adult)
{
    if(typeof adult =="undefined") adult = '';
    // Ajaxオブジェクト生成
    new Ajax.Request('index.php',
                        {'method': 'get',
                         'parameters': 'action=util_dropmaker' +
                                       '&dropid=' + makerDropId + 
                                       '&capital=' + makerCapitalId +
                                       '&selid=' + makerId +
                                       '&adult=' + adult,
                        onException: checkException,
                        onComplete: updateMakerDropTrim });
}

/**
 * 買取メーカ名ロード時
 * @arg makerDropId  メーカ名ドロップダウンのID
 * @arg makerCapitalId  メーカ名頭文字の値
 * @arg makerId  メーカ名の値
 * @arg adult  アダルトフラグ
 */
function loadKaitoriMaker(makerDropId, makerCapitalId, makerId, typediv)
{
    if(typeof adult =="undefined") adult = '';
    // Ajaxオブジェクト生成
    new Ajax.Request('index.php',
                        {'method': 'get',
                         'parameters': 'action=util_dropmaker_kaitori' +
                                       '&dropid=' + makerDropId + 
                                       '&capital=' + makerCapitalId +
                                       '&selid=' + makerId +
                                       '&typediv=' + typediv,
                        onException: checkException,
                        onComplete: updateMakerDrop });
}


/**
 * メーカーリストをドロップダウンリストに追加
 * @arg httpResponse httpのレスポンス
 */
function updateMakerDrop(httpResponse)
{
    //返ってきた文字列を、
    //改行文字を区切りとして配列にする
    makerArray = httpResponse.responseText.split("\n");

    //最初の１行目はメーカ名ドロップのID
    makerDropId = makerArray[0];

    //メーカ名ドロップの中身をクリア
    var optLength = $(makerDropId).options.length;
    for(var i = 0; i < optLength; i++){
        $(makerDropId).options[i] = null;
    }

    // メーカ名ドロップの Length を初期化
    $(makerDropId).options.length = 0;

    //メーカ名ドロップの中身を設定
    selectidx = 0;
    for(var i = 1; i < makerArray.length; i++){
        //nameとvalueに分解
        nameValueArray = makerArray[i].split(",");

        //optionを設定
        $(makerDropId).options[i - 1] = new Option(nameValueArray[1], nameValueArray[0]);

        if (nameValueArray[2]=="true") selectidx = i-1;
    }
    $(makerDropId).selectedIndex = selectidx;
}

/**
 * メーカーリストをドロップダウンリストに追加
 * 追加時に特定の文字数で切り取る
 * @arg httpResponse httpのレスポンス
 */
function updateMakerDropTrim(httpResponse)
{
    //返ってきた文字列を、
    //改行文字を区切りとして配列にする
    makerArray = httpResponse.responseText.split("\n");

    //最初の１行目はメーカ名ドロップのID
    makerDropId = makerArray[0];

    //メーカ名ドロップの中身をクリア
    var optLength = $(makerDropId).options.length;
    for(var i = 0; i < optLength; i++){
        $(makerDropId).options[i] = null;
    }

    // メーカ名ドロップの Length を初期化
    $(makerDropId).options.length = 0;

    //メーカ名ドロップの中身を設定
    selectidx = 0;
    for(var i = 1; i < makerArray.length; i++){
        //nameとvalueに分解
        nameValueArray = makerArray[i].split(",");
        //console.log(nameValueArray[1]);
        //console.log(substr(nameValueArray[1], 20, '...'));

        //optionを設定
        $(makerDropId).options[i - 1] = new Option(substr(nameValueArray[1], 16, '...'), nameValueArray[0]);

        if (nameValueArray[2]=="true") selectidx = i-1;
    }
    $(makerDropId).selectedIndex = selectidx;
}


/**
 * レーベル名頭文字ドロップダウンの変更
 * @arg makerDropId  メーカ名ドロップダウンのID
 * @arg labelDropId  レーベル名ドロップダウンのID
 */
function changeLabel(makerDropId, labelDropId)
{
    // 選択された頭文字を取得
    maker = $(makerDropId).value;

    // Ajaxオブジェクト生成
    new Ajax.Request('index.php',
                        {'method': 'get',
                         'parameters': 'action=util_droplabel&dropid='+labelDropId+'&makercd='+maker,
                        onException: checkException,
                        onComplete: updateLabelDrop });
}

/**
 * レーベル名ロード時
 * @arg labelDropId  レーベル名ドロップダウンのID
 * @arg makercd  メーカ名の値
 * @arg labelId  レーベル名の値
 */
function loadLabel(labelDropId, makercd, labelId)
{
    // Ajaxオブジェクト生成
    new Ajax.Request('index.php',
                        {'method': 'get',
                         'parameters': 'action=util_droplabel' +
                                       '&dropid=' + labelDropId +
                                       '&makercd=' + makercd +
                                       '&selid=' + labelId,
                        onException: checkException,
                        onComplete: updateLabelDrop });
}

/**
 * レーベルリストをドロップダウンリストに追加
 * @arg httpResponse httpのレスポンス
 */
function updateLabelDrop(httpResponse)
{
    //返ってきた文字列を、
    //改行文字を区切りとして配列にする
    labelArray = httpResponse.responseText.split("\n");

    //最初の１行目はメーカ名ドロップのID
    labelDropId = labelArray[0];

    //メーカ名ドロップの中身をクリア
    var optLength = $(labelDropId).options.length;
    for(var i = 0; i < optLength; i++){
        $(labelDropId).options[i] = null;
    }

    //メーカ名ドロップの Length を初期化
    $(labelDropId).options.length = 0;

    //メーカ名ドロップの中身を設定
    selectidx = 0;
    for(var i = 1; i < labelArray.length; i++){
        //nameとvalueに分解
        nameValueArray = labelArray[i].split(",");

        //optionを設定
        $(labelDropId).options[i - 1] = new Option(nameValueArray[1], nameValueArray[0]);

        if (nameValueArray[2]=="true") selectidx = i-1;
    }
    $(labelDropId).selectedIndex = selectidx;
}

/**
 * キャスト名検索テキストフィールドの変更時
 * @arg castSearchTextId   キャスト名検索テキストフィールドのID
 * @arg castDropId         キャストドロップダウンのID
 */
function changeCastSearchText(castSearchTextId, castDropId)
{
    // 入力された文字を取得
    searchText = $(castSearchTextId).value;

    if ((searchText) && (searchText.length >= 2)) { // 入力

        var params = 'action=util_dropcast' +
                     '&dropid=' + castDropId +
                     '&castdiv=1&typediv=1&adult=1' +
                     '&searchtext=' + searchText;

        // Ajaxオブジェクト生成
        new Ajax.Request('index.php', {
                         'method': 'get',
                         'parameters': params,
                          onException: checkException,
                           onComplete: updateCastDrop });
    }
}

/**
 * キャストリストをドロップダウンリストに追加
 * @arg httpResponse httpのレスポンス
 */
function updateCastDrop(httpResponse)
{
    //返ってきた文字列を、
    //改行文字を区切りとして配列にする
    castArray = httpResponse.responseText.split("\n");

    //最初の１行目はキャスト名ドロップのID
    castDropId = castArray[0];

    //キャスト名ドロップの中身をクリア
    var optLength = $(castDropId).options.length;
    for(var i = 0; i < optLength; i++){
        $(castDropId).options[i] = null;
    }

    // キャスト名ドロップの Length を初期化
    $(castDropId).options.length = 0;

    //キャスト名ドロップの中身を設定
    selectidx = 0;
    $(castDropId).options[0] = new Option('女優名を選択', '');
    for(var i = 2; i < castArray.length; i++){
        //nameとvalueに分解
        nameValueArray = castArray[i].split(",");

        //optionを設定
        $(castDropId).options[i - 1] = new Option(nameValueArray[1], nameValueArray[0]);

        if (nameValueArray[2]=="true") selectidx = i-1;
    }
    $(castDropId).selectedIndex = selectidx;
}


/**
 * タグ入力フィールドにクリックしたタグを追加
 * @arg tag タグ名
 */
function clickTag(tag)
{
    if (tag!='') $('inputtag').value += ' ' + tag;
}

/**
 * 画像削除確認
 * @arg action アクション名
 */
function deleteImgCheck(action)
{
  if (confirm("この画像を削除します。よろしいですか？")) {
    $('ac').value = action;
    return true;
  } else {
    return false;
  }
}

