// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

//eparts及びbookmarksで使用
//チェックボックスが何もチェックされていなければフォーム内のボタンを全て無効にする。
//一つでもチェックされていればボタンを有効にする。
//但し、部品詳細ページの個別ダウンロードボタンはパスする。
function all_non_checked_submit_disable(form_id_name){
  var check_boxs = Form.getInputs(form_id_name, "checkbox");
//  var submit_array = Form.getInputs(form_id_name,"submit");
  var checkarray=[];
  check_boxs.each( function(cb){
      checkarray.push(cb.checked);
      });
  if (checkarray.include(true)){
        jQuery('.killBTN').css('display','none');
        jQuery('.funcBtn .left li a').css('display','block');
  }else{
        jQuery('.killBTN').css('display','block');
        jQuery('.funcBtn .left li a').css('display','none');
  }
}
//フォーム内での複数ボタン配置時に使用。
//クリック時にフォームのポスト先アクションを引数のアクションに変更する。
function multi_submit(action) {
  $('multi_id_form').action = action ;
  $('multi_id_form').submit();
}
//epartsでの検索フォームリセット用関数。
//検索に使用した値をRails側変数を利用して検索結果画面に表示している為、
//Form.resetだけでは消せない。
function reset_form(){
  Form.reset('search_form');
  $('l_categories_result').innerHTML='';
  $('m_categories_result').innerHTML='';
  $('maker_result').innerHTML='';
  $('l_category_id').value='';
  $('m_category_id').value='';
  $('maker_id').value='';
  $('l_operand').value='equal';
  $('length_l').value='';
  $('length_r').value='';
  $('width_l').value='';
  $('width_r').value='';
  $('w_operand').value='equal';
  $('height_l').value='';
  $('height_r').value='';
  $('h_operand').value='equal';
  $('model_name').value='';
  $('spec_body_').checked=true;
  $('ftp_').checked=true;
  new Ajax.Request( '/eparts/select_pins', {asynchronous:true, evalScripts:true, parameters:'parent_id='+$('l_category_id').value +'&child_id=' +$('m_category_id').value +'&maker_id=' +$('maker_id').value});
}
//epartsのカテゴリーとメーカー検索の条件指定を検索フォームに動的に反映する。
//反映させたあとにLightWindowを閉じる。
function filter_category_and_maker(){
  $('l_category_id').value=$('parent_id').value;
  $('m_category_id').value=$('child_id').value;
  $('maker_id').value=$('s_maker_id').value;
  new Ajax.Request( '/eparts/select_pins', {asynchronous:true, evalScripts:true, parameters:'parent_id='+$('parent_id').value +'&child_id=' +$('child_id').value +'&maker_id=' +$('s_maker_id').value});
  if ($('parent_id').value==false){
    $('l_categories_result').innerHTML='<strong>分類　　：</strong> 指定なし ／ ';
  }else{
    $('l_categories_result').innerHTML='<strong>分類　　：</strong> ' + $('parent_id').options[$('parent_id').selectedIndex].text+' ／ ';
  }
  if ($('child_id').value==false){
    $('m_categories_result').innerHTML='指定なし<br />';
  }else{
    $('m_categories_result').innerHTML=$('child_id').options[$('child_id').selectedIndex].text+ '<br />';
  }
  if ($('s_maker_id').value==false){
    $('maker_result').innerHTML='<strong>メーカー： </strong>指定なし';
  }else{
    $('maker_result').innerHTML='<strong>メーカー： </strong>' + $('s_maker_id').options[$('s_maker_id').selectedIndex].text;
  }
  $('re_search').innerHTML="<img src='/images/search/btn_category2.gif' alt='再指定する' class='over' />";
  myLightWindow.deactivate();
}
//form内のelement.valueが設定されていない場合はボタンを無効にする
function disable_check_form_submit(form_id){
  var submit_array = Form.getInputs(form_id,"submit");
  var elements = Form.getElements(form_id);
  var element_value_array=[];
  elements.each(function (element){
      element_value_array.push(element.value);
      });
  if (element_value_array.include('')){
    submit_array.each( function(elem){
        elem.disabled=true;
        });
  }else{
    submit_array.each( function(elem){
        elem.disabled=false;
        });
  }
}
//検索ボックスのオペランドによるテキストフィールドの制御を行う。
//=,以上、以下の場合、右辺フィールドを無効化及び、値を消す.
function controll_right_text_field(select_elem_value,rtext_elem){
  disable_array=['equal','more_than','less_than'];
    if (disable_array.include(select_elem_value)){
      rtext_elem.disabled=true;
      rtext_elem.value='';
      jQuery(rtext_elem.parentNode).removeClass('showField');
      jQuery(rtext_elem.parentNode).addClass('hiddenField');
    }else{
      rtext_elem.disabled=false;
      jQuery(rtext_elem.parentNode).removeClass('hiddenField');
      jQuery(rtext_elem.parentNode).addClass('showField');
    }
}

//一度lightwindowを開いて、カテゴリやメーカーを指定した後、再度lightwindowを開いた際、その指定したものがあらかじめselectedになる
function setDefaultOptionValueSelects(){
  setDefaultOptionValue($('parent_id'),$F('l_category_id'));
  new Ajax.Updater('selected_categories','/eparts/select_category_id', {asynchronous:true, evalScripts:true,onComplete:function(request){setDefaultOptionValue($('child_id'),$F('m_category_id'));}, parameters:'parent_id='+$('parent_id').value });
  setDefaultOptionValue($('s_maker_id'),$F('maker_id'));
}

//pinとpitchをselectedにする。
function setPinAndPitchOptionValue(pin_val,pitch_val){
  setDefaultOptionValue($('pin'),pin_val);
  setDefaultOptionValue($('pitch'),pitch_val);
}

//各selectBoxをselectedにする。
function setDefaultOptionValue(category_elem,search_elem_val){
  for(i=0;i<category_elem.length;i++){
    if ( category_elem.options[i].value==search_elem_val){
      category_elem[i].selected = true;
    }
  }
}

function updateAllCheckbox(changedCheckbox) {
  if (changedCheckbox.checked == true) {
    jQuery(changedCheckbox).parents('table').find('input').each(function() {
      this.checked = true;
    });
  }
  else {
    jQuery(changedCheckbox).parents('table').find('input').each(function() {
      this.checked = false;
    });
  }
  all_non_checked_submit_disable(jQuery(changedCheckbox).parents('form')[0].id);
}

function updateCheckAllCheckbox(changedCheckbox) {
  //兄弟のチェックボックスが一つでもチェックされていなければcheckAllCheckboxのチェックをはずす
  var isAllChecked = true;
  jQuery(changedCheckbox).parents('table').find('input').each(function() {
    if (! jQuery(this).hasClass('checkAllCheckbox')) {
      if (this.checked == false) {
        isAllChecked = false;
      }
    }
  });
  if (isAllChecked) {
    jQuery(changedCheckbox).parents('table').find('input.checkAllCheckbox').each(function() {
      this.checked = true;
    });
  }
  else {
    jQuery(changedCheckbox).parents('table').find('input.checkAllCheckbox').each(function() {
      this.checked = false;
    });
  }
}

function isDecimal(field){
    var number = jQuery(field).val();
    if (number) {
        if (! /^(0|[1-9]{1}\d{0,})(\.(\d{1}\d{0,}))?$/.test(number)) {
            jQuery(field).val('');
            alert('半角数値で入力してください。');
        }
    }
}
