var FDQ = {};

FDQ.Fdata_query = function(url_xml) {
    this.url_xml = url_xml;
    this.xml;
    this.obj;
    this.getDataFromXml(url_xml);
};

FDQ.Fdata_query.prototype.getDataFromXml = function (url_xml) {
    var xml;
    new Ajax.Request(this.url_xml,
	{
		method: 'get',
		asynchronous: false,
		onComplete: function(res) {
			xml = res.responseText;
		}
	});
    this.xml = xml;
    var xotree = new XML.ObjTree();
    xotree.force_array = ['fdata','purpose','feature','dataID'];
    var tree = xotree.parseXML(this.xml);
    this.obj = tree.root;
}

FDQ.Fdata_query.prototype.getPurposeLabels = function () {
    var purposes = this.obj.purpose;
    var p_labels = new Array();
    purposes.each(function(purpose){
        p_labels[p_labels.length] = purpose.label;
    });
    return p_labels;
}

FDQ.Fdata_query.prototype.getFdatasByIds = function (ids) {
    var fdatas = this.obj.fdata;
    var r = new Array();
    for(var i = 0 ; i < ids.length ; i++) {
        for(var j = 0 ; j < fdatas.length ; j++) {
            if(fdatas[j]['-id'] == ids[i]) {
                r[r.length] = fdatas[j];
            }
        }
    }
    return r;
}

FDQ.Fdata_query.prototype.makeftable = function (fdatas) {
    var tbody = document.createElement('tbody');
    var trs = new Array();
    var ths = new Array();
    var tds = new Array();
    var titles = [
        "クレジットカード", //tdsi0
        "特徴",				//tdsi1
        "ポイント<br />サービス", //tdsi2
        "年会費",			//tdsi3
        "利用<br />限度額",		//tdsi4
        "付帯保険",			//tdsi5
        "追加<br />カード",		//tdsi6
        "ブランド",		//tdsi7
        "申込み"			//tdsi8
    ];

    trs[0] = document.createElement('tr');
    for(var i = 0 ; i <= 8 ; i++) {
        ths[i] = document.createElement('th');
        ths[i].innerHTML = titles[i];
        trs[0].appendChild(ths[i]);
    }
    tbody.appendChild(trs[0]);

    for(var i = 0 ; i < fdatas.length ; i++){
        trs[i + 1] = document.createElement('tr');
        tds[i] = new Array();

        for(var j = 0 ; j <= 8 ; j++) {
            tds[i][j] = document.createElement('td');
        }

        tds[i][0].innerHTML = fdatas[i].markURL  +  '<br />' + fdatas[i]['-name'];

        tds[i][1].innerHTML = (fdatas[i].feature ? '<img src="./img/mk_01.gif">' + fdatas[i].feature.join('<br /><img src="./img/mk_01.gif">').replace(/\[/g,'<').replace(/\]/g,'>') : '&nbsp;');
        if(fdatas[i].pt_service) {
        switch (fdatas[i].pt_service) {
            case '1' : tds[i][2].innerHTML = 'ワールドプレゼント' ; break;
            case '2' : tds[i][2].innerHTML = 'わいわいプレゼント' ; break;
            case '3' : tds[i][2].innerHTML = 'VIASOポイントプログラム' ;  break;
            case '4' : tds[i][2].innerHTML = 'なし' ; break;
            case '5' : tds[i][2].innerHTML = 'NICOSゴールドポイントプログラム' ;  break;
            case '6' : tds[i][2].innerHTML = '永久不滅ポイント' ; break;
            case '7' : tds[i][2].innerHTML = 'わくわくポイント' ;  break;
            case '8' : tds[i][2].innerHTML = 'その他' ; break;
            case '9' : tds[i][2].innerHTML = 'グローバルポイント' ;  break;
            case '10' : tds[i][2].innerHTML = '永久不滅ポイント' ; break;
            case '11' : tds[i][2].innerHTML = 'シティポイントギフト' ; break;
        }
        }
        else tds[i][2].innerHTML = '&nbsp;' ;
        
        tds[i][3].innerHTML = fdatas[i].kaihi ?
        tds[i][3].innerHTML = fdatas[i].kaihi : '&nbsp;';
        
        tds[i][4].innerHTML = fdatas[i].limit_use ?
        tds[i][4].innerHTML = fdatas[i].limit_use : '&nbsp;';
        
        tds[i][5].innerHTML = 
        (fdatas[i].k_travel_h_yn == true ? '<img src="./img/ico_travel_k_h.gif">' : '<img src="./img/ico_spacer.gif">')
        +'<br />' +
        (fdatas[i].travel_h_yn == true ? '<img src="./img/ico_travel_h.gif">' :  '<img src="./img/ico_spacer.gif">')
        + '<br />' +
        (fdatas[i].shopping_h_yn== true ? '<img src="./img/ico_shopping_h.gif">' : '<img src="./img/ico_spacer.gif">')
        +'<br />' +
        (fdatas[i].tounan_h_yn == true ? '<img src="./img/ico_tounan_h.gif">' :  '<img src="./img/ico_spacer.gif">');
        
        tds[i][6].innerHTML = 
        (fdatas[i].add_card_family == true ? '<img src="./img/ico_option-family.gif">' : '<img src="./img/ico_option_spacer.gif">')
        + '<br />' +
        (fdatas[i].add_card_ETC == true ? '<img src="./img/ico_option-etc.gif">' :  '<img src="./img/ico_option_spacer.gif">')
        +'<br />' +
        (fdatas[i].add_card_eMoney == true ? '<img src="./img/ico_option-id.gif">' : '<img src="./img/ico_option_spacer.gif">') ;
        
        tds[i][7].innerHTML = 
        (fdatas[i].brand_VISA == true ? '<img src="./img/ico_visa.gif">' : '<img src="./img/ico_card_spacer.gif">')
        +'<br />' +
        (fdatas[i].brand_MasterCard == true ? '<img src="./img/ico_master.gif">' :  '<img src="./img/ico_card_spacer.gif">')
        +'<br />' +
        (fdatas[i].brand_Amex == true ? '<img src="./img/ico_amex.gif">' : '<img src="./img/ico_card_spacer.gif">')
        +'<br />' +
        (fdatas[i].brand_DinersClub == true ? '<img src="./img/ico_diners.gif">' :  '<img src="./img/ico_card_spacer.gif">')
        +'<br />' +
        (fdatas[i].brand_JCB == true ? '<img src="./img/ico_jcb.gif">' : '<img src="./img/ico_card_spacer.gif">') ;
        
        tds[i][8].innerHTML = fdatas[i].inquire.replace(/\[/g,'<').replace(/\]/g,'>').replace('申込み','<img alt="お申込みはこちらからどうぞ" src="./img/ico_inquire.gif">');
        
        for(var j = 0 ; j <= 8 ; j++) {
            trs[i + 1].appendChild(tds[i][j]);
        }
        tbody.appendChild(trs[i + 1]);
    }

    return tbody;
}

FDQ.Fdata_query.prototype.getPurposeById = function (id) {
    var purposes = this.obj.purpose;
    var r;
    for(var i = 0 ; i < purposes.length ; i++) {
        if(purposes[i].id == id) {
            r = purposes[i];
        }
    }
    return r;
}

FDQ.Fdata_query.prototype.makepurposetable = function (id) {
    var purpose = this.getPurposeById(id);
    var fdatas = this.getFdatasByIds(purpose.dataID);
    return this.makeftable(fdatas);
}
