CBPHelper::GetJSFunctionsForFields: Bitrix method

      
<?php 
//  CBPHelper :: GetJSFunctionsForFields()
//  /dist/bitrix/modules/bizproc/classes/general/helper.php:1015

    
public static function GetJSFunctionsForFields($objectName$arDocumentFields$arDocumentFieldTypes)
    {
        
ob_start();

        echo 
CAdminCalendar::ShowScript();
        
?>
        <script type="text/javascript">
        <?= $objectName ?>.GetGUIFieldEdit = function(field, value, showAddButton, inputName)
        {
            alert("Deprecated method GetGUIFieldEdit used");

            if (!this.arDocumentFields[field])
                return "";

            if (typeof showAddButton == "undefined")
                showAddButton = false;

            if (typeof inputName == "undefined")
                inputName = field;

            var type = this.arDocumentFields[field]["Type"];

            var bAddSelection = false;
            var bAddButton = true;

            s = "";
            if (type == "int" || type == "double")
            {
                s += '<input type="text" size="10" id="id_' + field + '" name="' + inputName + '" value="' + this.HtmlSpecialChars(value) + '">';
            }
            else if (type == "select")
            {
                s += '<select name="' + inputName + '_1">';
                s += '<option value=""></option>';
                for (k in this.arDocumentFields[field]["Options"])
                {
                    s += '<option value="' + k + '"' + (value == this.arDocumentFields[field]["Options"][k] ? " selected" : "") + '>' + this.arDocumentFields[field]["Options"][k] + '</option>';
                    if (value == this.arDocumentFields[field]["Options"][k])
                        value = "";
                }
                s += '</select>';
                bAddSelection = true;
            }
            else if (type == "file")
            {
                s += '<input type="file" id="id_' + field + '_1" name="' + inputName + '">';
                bAddSelection = true;
                bAddButton = true;
            }
            else if (type == "bool")
            {
                s += '<select name="' + inputName + '_1">';
                s += '<option value=""></option>';
                s += '<option value="Y"' + (value == "Y" ? " selected" : "") + '><?= GetMessage("BPCGHLP_YES"?></option>';
                s += '<option value="N"' + (value == "N" ? " selected" : "") + '><?= GetMessage("BPCGHLP_NO"?></option>';
                s += '</select>';
                bAddSelection = true;
                if (value == "Y" || value == "N")
                    value = "";
            }
            else if (type == "datetime" || type == "date")
            {
                s += '<span style="white-space:nowrap;">';
                s += '<input type="text" name="' + inputName + '" id="id_' + field + '" size="10" value="' + this.HtmlSpecialChars(value) + '">';
                s += '<a href="javascript:void(0);" title="<?= GetMessage("BPCGHLP_CALENDAR"?>">';
                s += '<img src="<?= ADMIN_THEMES_PATH ?>/<?= ADMIN_THEME_ID ?>/images/calendar/icon.gif" alt="<?= GetMessage("BPCGHLP_CALENDAR"?>" class="calendar-icon" onclick="jsAdminCalendar.Show(this, \'' + inputName + '\', \'\', \'\', ' + ((type == "datetime") ? 'true' : 'false') + ', <?= time() + date("Z") + CTimeZone::GetOffset() ?>);" onmouseover="this.className+=\' calendar-icon-hover\';" onmouseout="this.className = this.className.replace(/\s*calendar-icon-hover/ig, \'\');">';
                s += '</a></span>';
            }
            else // type == "S"
            {
                s += '<input type="text" size="40" id="id_' + field + '" name="' + inputName + '" value="' + this.HtmlSpecialChars(value) + '">';
            }

            if (bAddSelection)
                s += '<br /><input type="text" id="id_' + field + '" name="' + inputName + '" value="' + this.HtmlSpecialChars(value) + '">';

            if (bAddButton && showAddButton)
                s += '<input type="button" value="..." onclick="BPAShowSelector(\'id_' + field + '\', \'' + type + '\');">';

            return s;
        }

        <?= $objectName ?>.SetGUIFieldEdit = function(field)
        {
            alert("Deprecated method SetGUIFieldEdit used");
        }

        <?= $objectName ?>.GetGUIFieldEditSimple = function(type, value, name)
        {
            alert("Deprecated method GetGUIFieldEditSimple used");

            if (typeof name == "undefined" || name.length <= 0)
                name = "BPVDDefaultValue";

            if (typeof value == "undefined")
            {
                value = "";

                var obj = document.getElementById('id_' + name);
                if (obj)
                {
                    if (obj.type.substr(0, "select".length) == "select")
                        value = obj.options[obj.selectedIndex].value;
                    else
                        value = obj.value;
                }
            }

            s = "";
            if (type == "file")
            {
                s += '';
            }
            else if (type == "bool")
            {
                s += '<select name="' + name + '" id="id_' + name + '">';
                s += '<option value=""></option>';
                s += '<option value="Y"' + (value == "Y" ? " selected" : "") + '><?= GetMessage("BPCGHLP_YES"?></option>';
                s += '<option value="N"' + (value == "N" ? " selected" : "") + '><?= GetMessage("BPCGHLP_NO"?></option>';
                s += '</select>';
            }
            else if (type == "user")
            {
                s += '<input type="text" size="10" id="id_' + name + '" name="' + name + '" value="' + this.HtmlSpecialChars(value) + '">';
                s += '<input type="button" value="..." onclick="BPAShowSelector(\'id_' + name + '\', \'user\')">';
            }
            else
            {
                s += '<input type="text" size="10" id="id_' + name + '" name="' + name + '" value="' + this.HtmlSpecialChars(value) + '">';
            }

            return s;
        }

        <?= $objectName ?>.SetGUIFieldEditSimple = function(type, name)
        {
            alert("Deprecated method SetGUIFieldEditSimple used");

            if (typeof name == "undefined" || name.length <= 0)
                name = "BPVDDefaultValue";

            s = "";
            if (type != "file")
            {
                var obj = document.getElementById('id_' + name);
                if (obj)
                {
                    if (obj.type.substr(0, "select".length) == "select")
                        s = obj.options[obj.selectedIndex].value;
                    else
                        s = obj.value;
                }
            }

            return s;
        }
        </script>
        <?
        $str 
ob_get_contents();
        
ob_end_clean();

        return 
$str;
    }