﻿// JScript File
var autoPopulateRules = {
'.tremorAutoPopulate' : function(element)
    {
        if (element.tagName == "FORM")
        {
            Tremor.AutoPopulate.LoadForm(element);
        }
        else
        {
            var ids = element.id.split(":");
            var form = ids[0];
            var e = ids[1];
            Tremor.AutoPopulate.LoadValue(element,form,e);
        }
    }

};


Behaviour.register(autoPopulateRules);

Tremor.AutoPopulate = {
LoadForm: function(form)
{
    form = $(form);
    var i;
    if (!Tremor.Util.IsEmptyString(form.id)) {
        var cookie = Tremor.Util.GetCookie("formValues:"+form.id);
        if (cookie != null)
        {    
            var vals = cookie.split('&');
            var valmap = {};
            for( i=0;i<vals.length;i++)
            {
                var nv = vals[i].split('=');
                if (nv != null && nv.length > 1)
                {
                    valmap[nv[0]] = unescape(nv[1]);
                }
            }
            for( i=0;i<form.length;i++)
            {
                var e = form[i];
                var n = e.id || e.name;
                var v = valmap[n];
                if (!Tremor.Util.IsEmptyString(v))
                {
                    if (e.tagName=='SELECT')
                    {
                        for(var o=0;o<e.options.length;o++)
                        {
                            if (e.options[o] != null && e.options[o].value == v)
                            {
                                e.options[o].selected = 'selected';
                            }
                        }
                    }
                    else if (e.type == 'radio' || e.type=='checkbox')
                    {
                        e.checked = (e.value == v);
                    }
                    else if (e.tagName == "TEXTAREA")
                    {
                        e.value = v;
                    }
                    else if (e.type != 'file')
                    {
                    e.value = v;
                    }
                }
            }
        }
    }
},
LoadValue: function(element,formId,valueId)
{
    element = $(element);
    var i;
    if (!Tremor.Util.IsEmptyString(formId)) {
        var cookie = Tremor.Util.GetCookie("formValues:"+formId);
        if (cookie != null)
        {    
            var vals = cookie.split('&');
            var valmap = {};
            for( i=0;i<vals.length;i++)
            {
                var nv = vals[i].split('=');
                if (nv != null && nv.length > 1 && nv[0]==valueId)
                {
                    element.innerHTML = unescape(nv[1]);
                    return;
                }
            }
        }
    }
},
Save: function(form)
{
    form = $(form);
    var values = "";
    for(var i=0;i<form.length;i++)
    {
        var e = form[i];
        if ((e.tagName=='INPUT' || e.tagName=='SELECT')  && e.type != 'file' &&  !YAHOO.util.Dom.hasClass(e,'noSave'))
        {
            var n = e.id || e.name;
            Tremor.Debug.Log("Autopopulate value: " + n + " = " +$F(e),"autopouplate",4);
            values = values+"&"+n +"="+escape($F(e));
        }
        else if (e.tagName=="TEXTAREA")
        {
            var n = e.id || e.name;
            Tremor.Debug.Log("Autopopulate value: " + n + " = " +$F(e),"autopouplate",4);
            values = values+"&"+n +"="+escape(e.value);
        }
    }
    Tremor.Util.SetCookie("formValues:"+form.id,values);
}
}