function setOptions(target,res,mode) {

  target.length = res.length;
  for( var i=0; i < target.length ; i++ ) {
    if (mode==0){
      target.options[i].value = res[i].ID;
    } else {
      target.options[i].value = res[i].NM;
    }
    target.options[i].text  = res[i].NM;
    if (res[i].NM == "=="){
      target.selectedIndex=i;
    }
  }

}

function fsetAttribute(search,element,value){
	
	//searchパラメータが空の場合
	
	if (search.length == 0){
		search  = "?" + element + "=" + value ;
	}else{
		search += "&" + element + "=" + value ;
	}

	return search ;
}

//------------------------------------
//
// Input Key
//
//------------------------------------
function input_key(obj){
    fObj = document.MyForm;
    cnt = obj.value.length;
    if(cnt == 0){
       eval(obj.name + "_chk").setValue(false);
    }
    else{
       eval(obj.name + "_chk").setValue(true);
    }
};

function open_school_search(){
    subwin=window.open("m_school_search.php?search=1","sub","width=900,height=700,menubar=no,toolbar=no,location=no,status=no,resizable=yes,scrollbars=no");
}

function setparm(CD,NM){
    opener.document.MyForm.SCHOOL_CD.value=CD;
    opener.document.MyForm.SCHOOL_CD_chk.checked=true;
    opener.document.MyForm.SCHOOL_NM.value=NM;
    opener.search();
    window.close();
}

//初期値保存
function SaveState(id) {
    if ( confirm("グリッド設定を保存します。よろしいですか？") ) {
        Ext.Ajax.request({
            url: 'GridColmn.php',
            params: { 
                ID:stateId, 
                DATA: array2json(grid.colModel.config),
                Processing: 'save' },
            success:function(result,opt){
                var res = Ext.decode(result.responseText);
                if (res.success) {
                    alert('保存しました。');
                } else {
                    alert('保存する値がありませんでした。');
                }
            },
            failure:function(result,opt){
                alert('保存に失敗しました。');
            }
        });
    }
}

//グリッド設定クリア
function clearState(id) {
    if ( confirm("グリッド設定を初期値に戻します。よろしいですか？") ) {
        Ext.Ajax.request({
            url: 'GridColmn.php',
            params: { 
                ID:stateId, 
                DATA: '',
                Processing: 'clear' },
            success:function(result,opt){
                var res = Ext.decode(result.responseText);
                if (res.success) {
                    location.reload();
                }
            },
            failure:function(result,opt){
                alert('クリアに失敗しました。');
            }
        });
    }
}

//グリッド設定ロード
function loadState(){

    // XXXX_search.jsから移設　(width,height,colModelなどはXXXX_search.jsで定義する)
    pagingBar = new Ext.PagingToolbar({
        pageSize: pageSize,
        store: ds,
        displayInfo: true,
        displayMsg: '表示 {0} - {1} / <span STYLE="font-size: 16px; font-weight: bold; color: #005588">{2}</span> 件中',
        emptyMsg: '<span STYLE="font-size: 14px; font-weight: bold; color: #E78226">該当データがありません</span>'
    });
    grid = new Ext.grid.GridPanel({
        el:'topic-grid',
        width:gd_width,
        height:gd_height,
        store: ds,
        trackMouseOver:false,
        disableSelection:false,
        loadMask: true,
        frame:true,
        stripeRows:true,
        stateId: stateId,
        stateful: true,
        colModel:colModel,
        bbar: pagingBar
    });
    grid.on('celldblclick', data_sel, this);
    grid.render();
    search();
}

function setExtFormat(){
    Ext.apply(Ext.util.Format, {
        jaMoney : function(v) {
            var whole = String(v);
            var r = /(\d+)(\d{3})/;
            while (r.test(whole)) {
                whole = whole.replace(r, "$1" + "," + "$2");
            }
            v = whole;
            if (v.charAt(0) == "-") {
                return "-￥" + v.substr(1);
            }
            return "￥" + v;    },
        number : function(v) {
            var whole = String(v);
            var r = /(\d+)(\d{3})/;
            while (r.test(whole)) {
                whole = whole.replace(r, "$1" + "," + "$2");
            }
            v = whole;
            if (v.charAt(0) == "-") {
                return "-" + v.substr(1);
            }
            return v;    },
        rate : function(v) {
            var whole = String(v);
            var r = /(\d+)(\d{3})/;
            while (r.test(whole)) {
                whole = whole.replace(r, "$1" + "," + "$2");
            }
            v = whole;
            if (v.charAt(0) == "-") {
                return "-" + v.substr(1) + " %";
            }
            return v + " %";    }
    });
}
function gridStopEditing(){
    
}
function array2json(arr) {
    var parts = [];
    var is_list = (Object.prototype.toString.apply(arr) === '[object Array]');

    for(var key in arr) {
        var value = arr[key];

        if (key == "header"){
            value = encodeURIComponent(value);
        }

        if(typeof value == "object") { //Custom handling for arrays
            if(is_list) parts.push(array2json(value)); /* :RECURSION: */
            else parts[key] = array2json(value); /* :RECURSION: */
        } else if(typeof value == "function") { 
            //除外する
        } else {
            var str = "";
            if(!is_list) str = '"' + key + '":';

            //Custom handling for multiple data types
            if(typeof value == "number") str += value; //Numbers
            else if(value === false) str += 'false'; //The booleans
            else if(value === true) str += 'true';
            else str += '"' + value + '"'; //All other things
            // :TODO: Is there any more datatype we should be in the lookout for? (Functions?)

            parts.push(str);
        }
    }
    var json = parts.join(",");
    
    if(is_list) return '[' + json + ']';//Return numerical JSON
    return '{' + json + '}';//Return associative JSON
}

function date_add(targetDate, interval){
    var days = eval( interval );   //引数を数字に

    var myDate = targetDate;        
    var dd = myDate.getDate();     //現在の日付を取得

    dd += days;                //日付を加 or 減 => 得たい日付となる
    myDate.setDate(dd);        //得たい日付を直接セット
    
    return myDate;

} 
function computeDate(targetDate, addDays) {
    var dt = targetDate;
    var baseSec = dt.getTime();
    var addSec = addDays * 86400000;    //日数 * 1日のミリ秒数
    var targetSec = baseSec + addSec;
    dt.setTime(targetSec);
    return dt;
}

function DateCheck(Value) {            
//	var Value = target;
    // YYYY/MM/DD形式チェック(年は数字4桁,月は01〜12,日は01〜31)
	if(!Value.match(/^([0-9]{4})\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/)){
	    return "日付の形式が正しくありません。";
    }
	//年月日
    var sYear = Value.split("-")[0] - 0;
    var sMonth = Value.split("-")[1] - 1;
	// Javascriptは、0-11で表現
	var sDay = Value.split("-")[2] - 0;
    //日付の妥当性チェック
    var oDate = new Date(Date.parse(Value));
    if(oDate.getFullYear() == sYear && oDate.getMonth() == sMonth && oDate.getDate() == sDay){
//	    return "入力した日付に問題はありませんでした。";
    } else {
        return "入力した日付は正しくありません。";
    }
}
function backToTop() {
  var x1 = x2 = x3 = 0;
  var y1 = y2 = y3 = 0;
  if (document.documentElement) {
      x1 = document.documentElement.scrollLeft || 0;
      y1 = document.documentElement.scrollTop || 0;
  }
  if (document.body) {
      x2 = document.body.scrollLeft || 0;
      y2 = document.body.scrollTop || 0;
  }
  x3 = window.scrollX || 0;
  y3 = window.scrollY || 0;
  var x = Math.max(x1, Math.max(x2, x3));
  var y = Math.max(y1, Math.max(y2, y3));
  window.scrollTo(Math.floor(x / 2), Math.floor(y / 2));
  if (x > 0 || y > 0) {
      window.setTimeout("backToTop()", 30);
  }
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_nbGroup(event, grpName) { //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}

function test(){
alert("test");
}
function number_format(num){
    return num.toString().replace( /([0-9]+?)(?=(?:[0-9]{3})+$)/g , '$1,');
}

