var Field_Checker = {
    setData: function(data) {
        this.flds = data.flds;
        this.msg  = data.msg;
        this.excl = data.excl;
        this.parentElem = document.getElementById(data.root);
    },
    checkIt: function(nm) {
        var e = this.parentElem.getElementsByTagName(nm);
        var len = e.length;
        var elen = this.excl.length;
        for (var i=0; i<len; i++) {
//            var cur_val = 
            /** Exclude hidden fields */
            if (e[i].type == 'hidden')
                continue;
            /** Exclude excl fields */
            for (var j=0; j<elen; j++) {
                if (this.excl[j] == e[i].value) {
                    continue;
                }
            }
            /** Fill check */
            if (e[i].value == '') {
                return false;
            }
        }
        return true;
    },
    doCheck: function() {
        var flds = this.flds;
        var cnt  = this.flds.length;
        for (var i=0;i<cnt;i++) {
            var e = flds[i];
            var r = this.checkIt(e);
            if (!r) {
                this.echoIt();
                return false
            }
        }
        return true;
    },
    echoIt: function () {
        alert(this.msg);
    }
}

function check_fields(root_, msg, flds)
{
    var excl = ['content_params_id[15]', 'content_params_id[47]'];
    var data = {"root":root_, "msg":msg, "flds":flds, "excl":excl};
    Field_Checker.setData(data);
    return Field_Checker.doCheck();
}

