//***************************************************
// 画面遷移用関数(jump)
// 【使い方】
//    ・フォームのサブミット処理を行います。
//    ・onClickイベントで呼び出します。
//    ・formタグ内のmethod値はPOSTを設定してください。
//    ・GET値を扱いたい場合は第２，第３引数にそれぞれ文字列を設定します。( ※action値へのベタ書きは不要 )
//    ・POST値はHTML側で指定してください。
// 【書式】
//    function jump( $frm , $key ,$val )
// 【引数】
//    1. $frm : サブミットするフォーム名 ( formタグ内で指定したname値と同一のものを設定してください )
//    2. $key : GET値のキー              ( 複数選択時はカンマ区切り )
//    3. $val : GET値のパラメータ        ( 複数選択時はカンマ区切り )
//***************************************************

function jump( $frm , $key , $val ) {

    var $get_para = "";

    //パラーメータが複数指定された場合、"," で区切り配列へ格納
    if ( $key != "" ) {
        $ar_key = $key.split(",");
    }

    if ( $val != "" ) {
        $ar_val = $val.split(",");
    }

    //自画面のパスを取得
    $get_para = location.pathname;

    //GETパラメータ文字列を作成
    $prefix   = "?";
    for($i=0; $i<$ar_key.length; $i++){
        $get_para = $get_para + $prefix + $ar_key[$i] + "=" + $ar_val[$i];
        $prefix = "&";
    }

    document.forms[$frm].action = $get_para;
    document.forms[$frm].submit();
    document.form.forms[$frm].disabled = true;

}


//***************************************************
// 画面遷移用関数(jump2)
// 【使い方】
//    ・フォームのサブミット処理を行います。
//    ・onClickイベントで呼び出します。
//    ・formタグ内のmethod値はPOSTを設定してください。
//    ・GET値を扱いたい場合は第２，第３引数にそれぞれ文字列を設定します。( ※action値へのベタ書きは不要 )
//    ・POST値はHTML側で指定してください。
// 【書式】
//    function jump2( $frm , $key ,$val )
// 【引数】
//    1. $frm : サブミットするフォーム名 ( formタグ内で指定したname値と同一のものを設定してください )
//    2. $key : GET値のキー              ( 複数選択時はカンマ区切り )
//    3. $val : GET値のパラメータ        ( 複数選択時はカンマ区切り )
//***************************************************

function jump2( $frm , $key , $val ) {

    var $get_para = "";

    //パラーメータが複数指定された場合、"," で区切り配列へ格納
    if ( $key != "" ) {
        $ar_key = $key.split(",");
    }

    if ( $val != "" ) {
        $ar_val = $val.split(",");
    }

    //自画面のパスを取得
    $get_para = location.pathname;

    //GETパラメータ文字列を作成
    $prefix   = "?";
    for($i=0; $i<$ar_key.length; $i++){
        $get_para = $get_para + $prefix + $ar_key[$i] + "=" + $ar_val[$i];
        $prefix = "&";
    }

    window.open($get_para,"印刷");

}


//***************************************************
// 画像透過処理関数(imgTrans)
// 【使い方】
//    ・画像オンマウス時に透過処理を行います。
// 【書式】
//    function imgTrans( $img_id , $trans_par )
// 【引数】
//    1. $img_id    : 対象の画像id ( imgタグ内で指定したid値と同一のものを設定してください ※ページ内での重複厳禁 )
//    2. $trans_par : 透明度       ( 画像の透過度 ※例 0.5→50% ,1→100%(元画像) )
//***************************************************

function imgTrans($img_id, $trans_par) {
    
    var user_agent = navigator.userAgent;
    if(document.layers) {
        if($trans_par > 0) {
            document.layers[$img_id].visibility='visible';
        }
        else if($trans_par==0) {
            document.layers[$img_id].visibility='hidden';
        }
    } else if(user_agent.indexOf('Safari')!=-1) {
        
        document.getElementById($img_id).style.Opacity = $trans_par;
		  
    } else if(user_agent.indexOf('Mac_PowerPC') !=-1 && document.all) {
        if($trans_par > 0) {
            document.all($img_id).style.visibility='visible';
        }
        else if($trans_par==0) {
            document.all($img_id).style.visibility='hidden';
        }
    } else if(document.all) {
        
        document.getElementById($img_id).style.filter="alpha(opacity=0)";
        document.getElementById($img_id).filters.alpha.opacity  = ($trans_par * 100);
        
    } else if(user_agent.indexOf('Gecko')!=-1) {
        
        document.getElementById($img_id).style.MozOpacity = $trans_par;
    }
}

//***************************************************
// 画像切り替え(imgChange)
// 【使い方】
//    ・オンマウスイベント時、画像の切り替えを行います。
// 【書式】
//    function imgChange( $id , $img_path )
// 【引数】
//    1. $id       ：　変換対象の画像id（画像タグ内で指定したidを渡してください。※ページ内重複厳禁）
//    2. $img_path ：　変換後の画像パス
//***************************************************

function imgChange( $id , $img_path ) {
    
    document.getElementById($id).src = $img_path;

}

//***************************************************
// swfファイルを出力する(insertFlash)
//***************************************************
function insertFlash(flafile, wsize, hsize) {
    document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
    document.write('codebase="'+flafile+'://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"');
    document.write('WIDTH="'+wsize+'" HEIGHT="'+hsize+'" id="top" ALIGN="">');
    document.write('<PARAM NAME=movie VALUE="'+flafile+'">');
    document.write('<PARAM NAME=quality VALUE=high>');
    document.write('<PARAM NAME=bgcolor VALUE=#FFFFFF>');
    document.write('<PARAM name=LOOP value=false>');
    document.write('<EMBED src="'+flafile+'" loop=false quality=high bgcolor=#FFFFFF  WIDTH="'+wsize+'" HEIGHT="'+hsize+'" NAME="top" ALIGN=""');
    document.write('TYPE="application/x-shockwave-flash" PLUGINSPAGE="'+flafile+'://www.macromedia.com/go/getflashplayer"></EMBED> ');
    document.write('</OBJECT>');
}

//***************************************************
// セレクトボックスの on/off 切り替え(selectChange)
// 【使い方】
//    ・セレクトボックスのグレーアウトを切り替える
// 【書式】
//    function selectChange()
// 【引数】
//    1. $frm    : 対象のフォーム名
//    2. $select : セレクトボックス名 ( 複数ある場合はカンマ区切り )
//***************************************************

function selectChange($frm ,$select) {

    // ロック用の on/off を変数へ
    var $lock = document.forms[$frm].lock[0].checked;

    // $selectを分割し配列を作成
    if ( $select != "" ) {
        $arrItem = $select.split(",");
    }

    // $lockによってセレクトボックスのdisabledを切り替える
    if($lock == false) {
        ans = confirm("計算基準日のロックが解除されます。\n\nこの日付を変更する事によって、実際のお申込時の保険料と相違する事がありますのでご注意下さい。\nまた、計算基準日が過去、および半年以上先の場合は、資料請求はできません。\n\nロックを解除しますか？");
        if(ans){
            for($i=0; $i<$arrItem.length; $i++){
                document.forms[$frm].elements[$arrItem[$i]].disabled = false;
                document.forms[$frm].elements[$arrItem[$i]].style.backgroundColor = '#FFFFFF';
            }
        } else {
            document.forms[$frm].lock[0].checked = true;
        }
    } else {
        for($i=0; $i<$arrItem.length; $i++){
            document.forms[$frm].elements[$arrItem[$i]].disabled = true;
            document.forms[$frm].elements[$arrItem[$i]].style.backgroundColor = '#e9e9e9';
        }
    }
}


//***************************************************
// セレクトボックスの on/off 切り替え(selectChangeNoAlert)
// 【使い方】
//    ・セレクトボックスのグレーアウトを切り替える
// 【書式】
//    function selectChangeNoAlert()
// 【引数】
//    1. $frm    : 対象のフォーム名
//    2. $select : セレクトボックス名 ( 複数ある場合はカンマ区切り )
//    3. $status : ラジオボタンステータス
//***************************************************

function selectChangeNoAlert($frm ,$select) {

    var $lock = document.forms[$frm].lock[0].checked;

    // $selectを分割し配列を作成
    if ( $select != "" ) {
        $arrItem = $select.split(",");
    }

    // $lockによってセレクトボックスのdisabledを切り替える
    if($lock == true) {
        for($i=0; $i<$arrItem.length; $i++){
            document.forms[$frm].elements[$arrItem[$i]].disabled = true;
            document.forms[$frm].elements[$arrItem[$i]].style.backgroundColor = '#e9e9e9';
        }
    }else{
        for($i=0; $i<$arrItem.length; $i++){
            document.forms[$frm].elements[$arrItem[$i]].disabled = false;
            document.forms[$frm].elements[$arrItem[$i]].style.backgroundColor = '#FFFFFF';
        }
    }
}


//***************************************************
// セレクトボックスの on/off 切り替え(selectRelease)
// 【使い方】
//    ・公開日設定セレクトボックスのグレーアウトを切り替える
// 【書式】
//    function selectRelease()
// 【引数】
//    1. $check  : 対象のチェックボックス；
//    2. $frm    : 対象のフォーム名
//    3. $select : セレクトボックス名 ( 複数ある場合はカンマ区切り )
//***************************************************

function selectRelease($check ,$frm ,$select) {

    // ロック用の on/off を変数へ
    var $lock = document.getElementById($check).checked;

    // $selectを分割し配列を作成
    if ( $select != "" ) {
        $arrItem = $select.split(",");
    }

    // $lockによってセレクトボックスのdisabledを切り替える
    if($lock == true) {
        for($i=0; $i<$arrItem.length; $i++){
            document.forms[$frm].elements[$arrItem[$i]].disabled = false;
            document.forms[$frm].elements[$arrItem[$i]].style.backgroundColor = '#FFFFFF';
        }
    } else {
        for($i=0; $i<$arrItem.length; $i++){
            document.forms[$frm].elements[$arrItem[$i]].disabled = true;
            document.forms[$frm].elements[$arrItem[$i]].style.backgroundColor = '#e9e9e9';
            document.forms[$frm].elements[$arrItem[$i]].selectedIndex = 0;
        }
    }
}

//***************************************************
// こだわり検索メニューの表示／非表示
//***************************************************

function changeMenu(){
     var $value = document.getElementById('kodawari_area').style.display;
     if($value=="none"){
         document.getElementById('kodawari_area').style.display  = "inline";
         document.getElementById('kodawari_close').style.display = "inline";
         document.getElementById('kodawari_open').style.display  = "none";
     } else {
         document.getElementById('kodawari_area').style.display  = "none";
         document.getElementById('kodawari_close').style.display = "none";
         document.getElementById('kodawari_open').style.display  = "inline";
     }
}

//***************************************************
// 引数chk_targetの文字数が引数min_length以上～引数max_length以下であるかをチェックする（length_check)
// 【使い方】
//    ・公開日設定セレクトボックスのグレーアウトを切り替える
// 【書式】
//    boolean length_check( chk_target, min_length, max_length)
// 【引数】
//    1. chk_target = チェック対象となる文字列
//    2. min_length = 最小文字数（この値自身も範囲内に含む）
//    3. max_length = 最大文字数（この値自身も範囲内に含む）
// 【戻り値】
//    true = 範囲内 / false = 範囲外
//***************************************************

function length_check( chk_target, min_length, max_length)
{
  if ( chk_target.length >= min_length && chk_target.length <= max_length )
  {
    return true;
  }
  else
  {
    return false;
  }
}

//***************************************************
// テキストボックスの on/off 切り替え(selectRelease)
// 【使い方】
//    ・被保険者テキストボックスの有効／無効を切り替える
// 【書式】
//    function textRelease()
// 【引数】
//    1. $select : 対象のセレクトボックス；
//    2. $frm    : 対象のフォーム名
//    3. $select : テキストボックス名 ( 複数ある場合はカンマ区切り )
//***************************************************

function textRelease($select ,$frm ,$text) {

    $value = document.forms[$frm].elements[$select].value;
    
    // $textを分割し配列を作成
    if ( $text != "" ) {
        $arrItem = $text.split(",");
    }
    // $valueによってセレクトボックスのdisabledを切り替える
    if($value != 01) {
        for($i=0; $i<$arrItem.length; $i++){
            document.forms[$frm].elements[$arrItem[$i]].disabled = false;
            document.forms[$frm].elements[$arrItem[$i]].style.backgroundColor = '#ffffff';
        }
        document.getElementById('name_must').style.display = 'inline';
        document.getElementById('name_kana_must').style.display = 'inline';

    }else{
        for($i=0; $i<$arrItem.length; $i++){
            document.forms[$frm].elements[$arrItem[$i]].disabled = true;
            document.forms[$frm].elements[$arrItem[$i]].style.backgroundColor = '#cccccc';
            document.forms[$frm].elements[$arrItem[$i]].value = '';
        }
        document.getElementById('name_must').style.display = 'none';
        document.getElementById('name_kana_must').style.display = 'none';
    }

    //その他が選択された場合は、詳細用テキストボックスを有効にする
    if($value == 05) {
        document.forms[$frm].elements['relation_detail'].disabled = false;
        document.forms[$frm].elements['relation_detail'].style.backgroundColor = '#ffffff';
    }else{
        document.forms[$frm].elements['relation_detail'].disabled = true;
        document.forms[$frm].elements['relation_detail'].style.backgroundColor = '#cccccc';
        document.forms[$frm].elements['relation_detail'].value = '';
    }
}

//***************************************************
// 別テーブルのセルの高さを取得し、自セルの高さを合わせる
// 【書式】
//    getHeight($value,$title);
// 【引数】
//    1. $value : 自セルの名称（ID）；
//    2. $title : 親セルの名称（ID）
//***************************************************
function getHeight($value,$title){
    var $height;

    //パラーメータが複数指定された場合、"," で区切り配列へ格納
    if ( $value != "" ) {
        $arr_val = $value.split(",");
    }
    if ( $title != "" ) {
        $arr_ttl = $title.split(",");
    }

    //親セルの高さを取得し、自セルの高さに合わせる（配列分回す）
    for($i=0; $i<$arr_val.length; $i++){
        $height = document.getElementById($arr_val[$i]).offsetHeight;
        document.getElementById($arr_ttl[$i]).style.height = $height+="px";
        $height = "";
    }
}

//***************************************************
// テキストオンマウス時のバルーン表示
// 【書式】
//    shorToolTip(event,text)
// 【引数】
//    1. ev　　: イベント文字列
//    2. text  : バルーン表示するテキスト
//***************************************************
function showToolTip(e,text){
    if(document.all)e = event;
    var obj = document.getElementById('balloon_area');
    var obj2 = document.getElementById('balloon_content');
    obj2.innerHTML = text;
    obj.style.display = 'block';
    var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
    if(navigator.userAgent.toLowerCase().indexOf('safari')>=0)st=0; 
    var leftPos = e.clientX - 50;
    if(leftPos<0)leftPos = 0;
    obj.style.left = leftPos + 'px';
    obj.style.top = e.clientY - obj.offsetHeight -1 + st + 'px';
}
// テキストオンマウスアウト時にバルーン表示を解除
function hideToolTip(){
    document.getElementById('balloon_area').style.display = 'none';
}

//***************************************************
// トップページに移動（表側）
//***************************************************
function toTopPage(){
    $host = location.host;
    $pass = location.pathname;
    location.href= "http://" + $host + $pass + "?act=top";
}

//***************************************************
// トップページに移動（管理画面側）
//***************************************************
function toAdminTopPage(){
    $host = location.host;
    $pass = location.pathname;
    location.href= "http://" + $host + $pass + "?cage=admin.login&act=login";
}


//***************************************************
// ここから各画面個別のファンクション類を定義
//***************************************************

//***************************************************
// フォーム内の入力値が正しいかどうかをチェックする（loginform_check)
// 【使い方】
//    ・公開日設定セレクトボックスのグレーアウトを切り替える
// 【書式】
//    boolean loginform_check( obj, allow_nopassword, loginid_min, loginid_max, password_min, password_max)
// 【引数】
//    1. allow_nopassword : パスワードなしを許可するか
//    2. loginid_min      : ログインIDの最小値（この値自身も範囲内に含む）
//    3. loginid_max      : ログインIDの最大値（この値自身も範囲内に含む）
//    4. password_min     : パスワードの最小値（この値自身も範囲内に含む）
//    5. password_max     : パスワードの最大値（この値自身も範囲内に含む）
// 【戻り値】
//    true = 範囲内 / false = 範囲外
//***************************************************

function loginform_check( allow_nopassword, loginid_min, loginid_max, password_min, password_max)
{
  // ログインIDが力されていることをチェックする
  if ( document.login.loginid.value.length <= 0 )
  {
    alert('ログインIDが入力されていません。');
    document.login.loginid.focus();
    return false;
  }

  // パスワードが入力されていることをチェックする
  if ( ! ( allow_nopassword ) && ( document.login.password.value.length <= 0 ) )
  {
    alert('パスワードが入力されていません。');
    document.login.password.focus();
    return false;
  }

  // ログインIDが規定の範囲内であるかをチェックする
  if ( ! length_check( document.login.loginid.value, loginid_min, loginid_max )  )
  {
    alert('ログインIDが' + loginid_min + '文字以上' + loginid_max + '以下ではありません。');
    document.login.loginid.focus();
    return false;
  }

  // パスワードが規定の範囲内であるかをチェックする
  if ( ! length_check( document.login.password.value, password_min, password_max )  )
  {
    alert('パスワードが' + password_min + '文字以上' + password_max + '以下ではありません。');
    document.login.password.focus();
    return false;
  }
}


//***************************************************
// 引数で渡されたフォーム内のチェックボックスのチェック全解除
//***************************************************

function checkClear($frm) {
    $bln = document.forms[$frm].elements.length;
    for($i=0; $i<$bln; $i=$i+1){
        if(document.forms[$frm].elements[$i].type=='checkbox'){
            document.forms[$frm].elements[$i].checked = false;
        }
    }
}

//***************************************************
// 商品リストで、資料請求チェックが４件以上チェックされた場合、アラートを出し、チェックをはずす。
//***************************************************
function requestCheck($frm,$id) {
    $cnt = document.forms[$frm].elements['check[]'].length;
    $checkedcnt = 0;
    for($i=0; $i<$cnt; $i++){
        if(document.forms[$frm].elements['check[]'][$i].checked == true){
            $checkedcnt = $checkedcnt + 1;
        }
        if($checkedcnt >= 5){
            alert("資料請求は４商品以内でお願いいたします。");
            document.getElementById($id).checked = false;
            break;
        }
    }
}

//***************************************************
// 商品リストで、資料請求が１件もチェックされていなかった場合、アラートを出す。
//***************************************************
function norequestCheck($frm) {
    $cnt = document.forms[$frm].elements['check[]'].length;

    if($cnt == null){
      $cnt = 1;
    }

    $blnCheck = false;

    for($i=0; $i<$cnt; $i++){
        if ($cnt == 1){
          if(document.forms[$frm].elements['check[]'].checked == true){
            $blnCheck = true;
          }
        }
        else if(document.forms[$frm].elements['check[]'][$i].checked == true){
            $blnCheck = true;
        }
    }

    if($blnCheck == true){
        return true;
    }else{
        alert("資料請求を行う商品を選択してください。");
        return false;
    }
}

//***************************************************
// スクロール関数(move)
// 【概要】
//    ・左右にスクロールさせる
// 【書式】
//    function move( $wrap ,$direction ,$length )
// 【引数】
//    1. $wrap      : スクロール範囲
//    2. $direction : 左右
//    3. $length    : 移動させる距離（px）
//***************************************************

function move( $wrap ,$direction ,$length ){
    switch( $direction ){
        case "left":
            document.getElementById($wrap).scrollLeft -= $length; //現在地から5px戻る
            break;
        case "right":
            document.getElementById($wrap).scrollLeft += $length; //現在地から5px進む
            break;
    }
}

//***************************************************
//move関数をミリ秒単位でコールし続ける
//***************************************************
function scroll_start( $wrap , $direction , $length ){
    // move()を呼び続ける
    $scrolling = setInterval("move('" + $wrap + "' ,'" + $direction + "' ," + $length + ")",1);
}

//***************************************************
//setIntervalを解除
//***************************************************
function scroll_stop(){
    clearInterval($scrolling);
}
