﻿var UtilData = {
    setData : function(f, data)
    {
        if(f)
        {
            var e, n;
            for(var i=0; i<f.elements.length; i++)
            {
                e = f.elements[i];
                if(e) UtilData.setValueField(f, e, data[String(e.name).toLowerCase()]);
            } 
            
            var st = ID("status_" + f.name);
            if(st)
            {
                st.innerHTML =  "Cód. Id.: <span>" + data["id"] + "</span>"+
                                (data["dta"].trim().length>0 ? "&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;Cadastro: <span>" + data["dti"] + "</span>" : "") + 
                                (data["dta"].trim().length>0 ? "&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;&nbsp;Alteração: <span>" + data["dta"] + "</span>" : "");
            }
            
        }
    },

    //--------------------------------------

    setValueField : function(field, value)
    {
        //caso de lista de radio ou checkbox, retorna object mais nao da acesso as propriedades como name ou id.
        if(typeof field.name=="undefined" && typeof field.id=="undefined") field = field[0];
        
        var t = field.type;    
        var i = 0;
        var n = field.name == "" ? field.id : field.name; //alert(n + " = " + t);
        var b = true;
        var at = null;
        
        if(field.tagName != "FIELDSET" && typeof value != "undefined")
        {         
            try
            {       
                var f = getElementFather(field,"form"); //"form" a que pertence "field"
             
                if(t.indexOf("radio")>-1 || t.indexOf("checkbox")>-1)
                {            
                    c = f.elements[n]; 
                    if(typeof c.length!="undefined")
                    {
                        //Pode ser que se value tiver virgula se trata de multiplos valores, com isso converter em array e compara com values dos elementos
                        if(value.indexOf(",")>-1) value = value.split(",");
                        
                        for(i=0;i<c.length;i++) 
                        {
                            if(typeof value=="object")
                                b = value.isExist(c[i].value);
                            else
                                b = c[i].value.toLowerCase()==value.toLowerCase();
                            
                            c[i].checked = b;
                        }
                    } 
                    else 
                        field.checked = (field.value.toLowerCase()==value.toLowerCase()) ? true : false;

                } 
                else if (t.indexOf("select")>-1)
                {
                    for(i=0;i<field.options.length;i++)
                    {   
                        if(field.options[i].value.toLowerCase()==value.toLowerCase()) 
                        {
                            field.options[i].selected = true;
                            field.setAttribute("defaultValue",value);
                            break;
                        }
                    }
                } 
                else 
                {
                    //Trata da conversao dos caracteres especiais
                    value = value.replaceAll("{13}", String.fromCharCode(13) );
                    value = value.replaceAll("{10}", "");
                    
                    at = field.getAttribute("mask");
                    if(at && value.length > 0 && at.indexOf("-")==-1 && at.indexOf("/")==-1)
                    {   
                        value = value.replace(",",".");  //alert(field.name + " = " + value);             
                        if(parseFloat(value)>0)
                        {   
                            if(at.indexOf(",") > -1)
                            {
                                if(value.indexOf(".")==-1) value += "00"; else if( value.length-value.indexOf(".") == 2 ) value += "0";  
                            }                 
                            value = formatString(value.replace(".",""), at);
                        }
                    }
                    
                    field.value = value;
                    field.setAttribute("defaultValue",value);
                }
                
            } 
            catch(ex)
            {
                alert(n + " = " + value);
            }
        }        
    }
}