﻿var OForm=new Object();
OForm.keep=false;

OForm.checkForm=function()
{
    
}
OForm.resetForm=function()
{
    document.forms[0].reset();
    OForm.clearMsg();
}
OForm.lenMsg=/^\[(\d+),(\d+)\]$/;
OForm.showMsg=function(field,msg,value)
{
    msg=$.trim(msg);    
    var fdom=$(":input[name='"+field+"']");
    if(fdom.length>0)
    {
        function getLenMsg(msg)
        {
            msg=msg.substr(1,msg.length-2);
            msg=msg.split(',');
            return "The Length ranges from {0} to {1}".format(msg[0],msg[1]);
        }
        if(OForm.lenMsg.test(msg))
        {
            msg=getLenMsg(msg);
        }
        else if(msg=="#")
        {
            msg="The value is invalid for this field."
        }
        else if(msg=="$")
        {
            msg="This field is required";
        }
        else if(msg=="^")
        {
            msg="Confirm failed";
        }
        
        if(fdom.attr("type")=="password")fdom.val("");
        
        fdom.parent().append("<span class='ferror'>"+msg+"</span>");
        return;
        fdom.addClass("errf");
        //$(":input[name='"+field+"']").attr("value",value);
        if(field.indexOf("1")>0)
        {
            var f1=(field.substr(0,field.length-1));
            for(var k=2;k<10;k++)
            {
                //alert(f1+k);
                $(":input[name='"+(f1+k)+"']").addClass("errf");
            }
        }
    }
    else if(field=="$")
    {
        if(typeof(OForm.handleFinalMsg)=="function")
        {
            OForm.handleFinalMsg(msg);
            return;
        }
        switch(value)
        {
            case "1":
                if(!OForm.keep)
                    OForm.resetForm();
                break;
        }
        ModalPopup.poptxt(msg);
    }
    else
    {
        alert(msg);
    }
}
OForm.clearMsg=function()
{
    $(".ferror").remove();
    $(":input").removeClass("errf");
}
OForm.handleValJson=function(json)
{
    $("input[type='password']").val("");
    json="var valmsgs="+json;
    try
    {
        eval(json);
    }catch(e)
    {
        alert("!Error. Invalid characters entered");
        return;
    }
    var v;
    var befinal=false;
    for(var i=0;i<valmsgs.length;i++)
    {
        v=valmsgs[i];
        if(v['Field']=="$" && typeof(OForm.handleFinalMsg)=="function")
        {
            befinal=true;
            OForm.handleFinalMsg(v['Msg']);
        }
        else
        {
            OForm.showMsg(v['Field'],v['Msg'],v['Value']);
            if(i==0)
            {
                try{
                    $(":input[name='"+v['Field']+"']").get(0).focus();
                }catch(e){}
            }
        }
        
    }
    if(!befinal)adInput(true);
}
OForm.ajaxSubmit=function()
{
    OForm.clearMsg();
    var data={};
    data["ajaxcmd"]="FormSubmit";
    var inputs=$(":input");
    inputs.each(
        function()
        {
            if(this.name)
            {
                var v=this.value;
                if(this.type=="checkbox"&&!this.checked)
                {
                    v="";
                }
                data[this.name]=v;
            }
            this.disabled=true;
        }
    );
    $.post(location.href, data, 
    function(res){
        OForm.handleValJson(res);
    });    
}
OForm.setField=function(field,v)
{
    if(v==null)v="";
    if(field.indexOf("_")==0)
    {
        field=field.substr(1);
        v=v.split("-");
        for(var i=0;i<v.length;i++)
        {
            $(":input[name='"+field+(i+1)+"']").attr("value",v[i]);
        }
    }
    else
    {
        $(":input[name='"+field+"']").attr("value",v);
    }
}
$(document).ajaxError(function(event, request, settings){
    adInput(true);
    alert("!Error. Invalid characters entered");
});

