/* Interfície i registre de validadors */
function RegistrarValidadors()
{
    if (typeof(Page_ClientValidate) != 'function')
    {
        Page_ClientValidate = new Function("return ValidarPagina();");
    }
    else
    {
        Page_ClientValidate = new Function("MSPage_ClientValidate(); return ValidarPagina();");
    }
}

function ValidarPagina()
{
	var	i = 0, d = document, pagina_validada;

    pagina_validada = true;

	while (o = d.getElementsByTagName("SPAN")[i])
	{
	    if (o.getAttribute("Tipus") == "Validador" && o.getAttribute("id") != "null" && o.getAttribute("id") != "") {
	        try {
	            pagina_validada = pagina_validada & ExecutarValidador(o.getAttribute("id")); 
            } catch (e) {
                //res
            }
        }

        i++;
	}

    return pagina_validada;
}

function ExecutarValidador(id_validador)
{
    var i, validador, ctl, valor, validat, args, param;

    validador = document.getElementById(id_validador);
    validat = true;

    if (validador != null && validador.getAttribute("ControlAValidar") != null && validador.getAttribute("DOMPropietatValorClient") != null && validador.getAttribute("FuncioValidacio") != null)
    {
        ctl = document.getElementById(validador.getAttribute("ControlAValidar"));
        valor = validador.getAttribute("DOMPropietatValorClient");

        if (ctl != null)
        {
            args = new Object();
            eval("args.valor = " + valor + ";");

            pagina_validada = true;
            i = 0;

        	while (param = validador.attributes[i])
        	{
        	    if (param.name.substring(0, 1) == "_")
        	    {
        	        if (validador.getAttribute(param.name).indexOf("getElementById") < 0)
        	        {
        	            eval("args." + param.name.substring(1).toLowerCase() + " = '" + validador.getAttribute(param.name) + "';");
                    }
                    else
                    {
                        eval("args." + param.name.substring(1).toLowerCase() + " = " + validador.getAttribute(param.name) + ";");
                    }
                }
                i++;
        	}

            eval("validat = " + validador.getAttribute("FuncioValidacio") + "(args);");
            validador.style.display = (validat ? "none" : "inline");
        }
    }

    return validat;
}

/* Funcions necessaries per a la validacio */
function TreureFormatNumero(valor, separador)
{
    if (valor != "" && separador != "")
    {
        valor = valor.replace(separador, "");
    }
    
    valor = valor.replace(",", ".");

    return valor;
}


