﻿    Array.prototype.Contains = function(value)
    {
        for(var i = 0;i<this.length;i++)
        {
            if(this[i] == value)
            {
                return true;
            }        
        }
        return false;
    };
    
    function getERAElements()
    {
        var eraElements = new Array();
        for(var i = 0;i<document.forms[0].elements.length;i++)
        {
            var element = document.forms[0].elements[i];
            if(element.id.toString().substring(0, 4)=="era_")
            {
                var elementType = "";
                if(element.getAttribute("type") != null)
                {
                    elementType = element.getAttribute("type");
                }
                if(elementType.search("button|reset|form")==-1)
                {
                    eraElements.push(element);
                }
            }
        }
        return eraElements;    
    }
    
    function getValueByKey(array, key)
    {
        for(var i = 0;i<array.length;i++)
        {
            if(array[i][0] == key)
            {
                return array[i][1];
            }        
        }
    }
     
    function prepareFormForPosting()
    {
        var eraElements = getERAElements();
        var checkedElementsArr = new Array();
        var uncheckedElementsArr = new Array();
        var uncheckedContainer = document.getElementById(uncheckedContainerId);
        //We need some way of identifying the user defined fields so we append an identifier to the element names
        for(var i = 0;i<eraElements.length;i++)
        {
            var element = eraElements[i];
            //isEmail
            var isEmail = element.getAttribute("isEmail");
            if(isEmail!=null)
            {
                if(element.name.substring(0, 21)!="eraFormBuilder_EMAIL_")
                {
                    element.name = "eraFormBuilder_EMAIL_" + element.name;
                }
            }
            else
            {
                if(element.name.substring(0,15)!="eraFormBuilder_")
                {
                    element.name = "eraFormBuilder_" + element.name;
                }
                if(element.tagName.toUpperCase() == "INPUT")
                {
                    var elementType = element.getAttribute("type", false).toUpperCase();
                    if(elementType == "CHECKBOX"||elementType == "RADIO")
                    {
                        if(!element.checked)
                        {                        
                            if(!uncheckedElementsArr.Contains(element.name))
                            {
                                uncheckedElementsArr.push(element.name);
                            }
                        }
                        else
                        {
                            if(!checkedElementsArr.Contains(element.name))
                            {
                                checkedElementsArr.push(element.name);
                            }
                        }
                    }
                }
            }
        }
        for(var i = 0;i<uncheckedElementsArr.length;i++)
        {
            var delim = "!";
            if(i==uncheckedElementsArr.length-1)
            {
                delim = "";
            }
            //if it's part of a group - ignore it
            if(!checkedElementsArr.Contains(uncheckedElementsArr[i]))
            {
                uncheckedContainer.value = uncheckedContainer.value + uncheckedElementsArr[i] + delim;
            }
        }
    }