var CdjRateFnc = {
    cName: 'trcntry',
    getElementsBySpanClass: function(className) {
        var children = document.getElementsByTagName('*');
        if(children.length <= 0) children = document.all;
        var elements = [];
        for (var i = 0; i < children.length; i++) {
            var child = children[i];
            var classNames = child.className.split(' ');
            for (var j = 0; j < classNames.length; j++) {
                if (classNames[j] == className) {
                    elements.push(child);
                    break;
                }
            }
        }
        return elements;
    },
    replaceTransClass: function(jp_name,trans_name,country) {
        if(CdjRatePer[country] == undefined) return;
        var jp_class = this.getElementsBySpanClass(jp_name);
        var trans_class = this.getElementsBySpanClass(trans_name);
//        if( trans_class.length != jp_class.length) return;
        for(var i=0; i < jp_class.length; i++) {
            var jp_yen = jp_class[i].innerHTML;
            jp_yen = jp_yen.replace(/,/g, '');

            var fnum = (
                Math.round(jp_yen / CdjRatePer[country]['rate'] * 100) / 100
            ).toString().replace(/^(\d+)$/, "$1" + ".0")
            .replace(/(.+\.\d{1})$/,"$1" + "0");

            if(trans_class[i] != undefined)
            trans_class[i].innerHTML = CdjRatePer[country]['disp'] + ' ' + fnum;
        }
        var expire = new Date();
        expire.setYear(expire.getUTCFullYear() + 10);
        this.setCookie(this.cName,country,expire.toGMTString());
        return 1;
    },
    getCookie: function(cookieName) {
        if(cookieName == undefined) return;
        var c = document.cookie.split(';');
        for(var i=0; i<c.length; i++){
            var n = c[i].replace(/\s/g,'').split('=');
            if( n[0] == cookieName ) return n[1];
        }
    },
    setCookie: function(cookieName, cookieValue, cookieExpire) {
        if( cookieName == undefined && cookieValue == undefined ) return;
        var str = cookieName + '=' + cookieValue + ';expires=' + cookieExpire + ';path=/';
        document.cookie = str;
        return document.cookie;
    },
    init: function(jp_name,trans_name) {
        var cv = this.getCookie(this.cName);
        if( cv == undefined ) return;
        var res = this.replaceTransClass(jp_name,trans_name,cv);
    },
    getForm: function(form_id, jp_name, trans_name) {
        var cv = this.getCookie(this.cName);
        var form_div = document.getElementById(form_id);
        if( form_div == undefined ) return;
        var select = document.createElement('select');
        select.setAttribute('name', 'r');
        select.setAttribute('onChange', 'CdjRateFnc.replaceTransClass(\'' + jp_name + '\',\'' + trans_name + '\',this[selectedIndex].value);');
        for(var i=0; i<CdjRateSort.length; i++){
            if( CdjRateSort[i] == '' ) i++;

            var option = document.createElement('option');
            option.setAttribute('value', CdjRateSort[i]);
            if( cv == CdjRateSort[i] )
                 option.setAttribute('selected', 'selected');
            var text = document.createTextNode(
                CdjRatePer[CdjRateSort[i]]['cap']
                + '(' +  CdjRatePer[CdjRateSort[i]]['disp'] + ')'
            );
            option.appendChild(text);
            select.appendChild(option);
        }

        form_div.appendChild(select);
    }
};
