/* *
 * ビューティJS処理共通関数
 */

/**
 * チェックボックスのチェック数制限処理
 *
 * @return bool
 */
function checkCount(){

    var nodes = $('#count input');
    var count = 0;
    var maxCount = 3;

    for (var i=0; i<nodes.length; i++){
        if (nodes[i].type == 'checkbox' && nodes[i].checked){
            count ++;
        }
    }
    if(count > maxCount){
        window.alert(message + maxCount + 'つ以下でお願いします。');
        return false;
    }else{
        return true;
    }

}

/**
 * 配列内の値存在判別
 *
 * @return bool
 */
function in_array(_value, _array){

    if(_array instanceof Array && 0<_array.length){
        for(var i=0; i<_array.length; i++){
            if(_array[i] == _value){
                return true;
            }
        }
    }

    return false;
}

/**
 * 配列内のキー存在判別
 *
 * @return bool
 */
function array_key_exists ( _key, _search ) {

    // input sanitation
    if( !_search || (_search.constructor !== Array && _search.constructor !== Object) ){
        return false;
    }

    return _key in _search;
}

function getMonthEndDay(_year, _month) {
    var dt = new Date(_year, _month, 0);
    return dt.getDate();
}

/**
 * Format number strings filled by '0'
 *
 * @param  mixed   num
 * @param  integer len
 * @return string
 */
function zerofill(num,len){
    var cnt = len - (num+"").length;
    var add0 = "";
    if ( cnt > 0 ) {
      for (i=0;i<cnt;i++) {
        add0 = add0 + "0";
      }
    }
    return (add0 + num );
}

/**
 * Line And Station To Station Filter
 *
 * @param  lstnParams array
 * @param  stnParams array
 * @return array|null
 */
function lstnFilter(lstnParams,stnParams){
    var params = null;
    if (array_key_exists('lstn',lstnParams) && array_key_exists('stn',stnParams)){
        var _nodes = lstnParams['lstn'];
        for(i=0; i<_nodes.length; i++){
            var _lstnValue = _nodes[i];
            var _lstnPos = _lstnValue.indexOf("s");
            if (_lstnPos != -1){
                var _lstnStn = _lstnValue.substring(_lstnPos + 1,_lstnValue.length);
                if (in_array(_lstnStn,stnParams['stn'])){
                    if(params == null){
                        params = new Array();
                    }
                    params.push(_lstnValue);
                }
            }
        }
    }
    return params;
}

/**
 * array Filter
 *
 * @param  chkArray array
 * @param  filterArray array
 * @param  chkKay string
 * @param  filterKey string
 * @return array|null
 */
function pFilter(chkArray,filterArray,chkKay,filterKey){
    var params = null;
    if (array_key_exists(chkKay,chkArray) && array_key_exists(filterKey,filterArray)){
            var _nodes = chkArray[chkKay];
            for(i=0; i<_nodes.length; i++){
                var _chkValue = _nodes[i];
                if (in_array(_chkValue,filterArray[filterKey])){
                    if(params == null){
                        params = new Array();
                    }
                    params.push(_chkValue);
                }
            }
    }
    return params;
}

// ソート用関数
var sortfunc = function(a, b){
    if (a.match(/\D/gi) || b.match(/\D/gi)){
        var sa = a+'', sb = b+'';
        return sa < sb ? -1 : sa === sb ? 0 : 1;
    }else{
        return a - b;
    }
};


