﻿var settingsObject = JSON.parse(jsonBlob);

var resultObject = {};





var buildDialog = function(settings, result)

{

    result.dialogAction = "cancel";

    

    var okRes = """okButton: Button { text:'""" + localize(_strings.BTN_OK) + """', properties:{name:'ok'} },""";

    var cancelRes = """cancelButton: Button { text:'""" + localize(_strings.BTN_CANCEL) + """', properties:{name:'cancel'} },""";



    dialogLayout =

    """dialog {

        st: StaticText { text:'""" + localize(_strings.STR_HEADER) + """', alignment: ['left', 'fill'], },

        settings: Panel { 

            orientation:'column',

            alignment: ['fill', 'fill'],

            c4dsettings: Group {

                margins: [0, 10, 0, 0],

                orientation:'column', 

                alignment:['fill','top'], 

                alignChildren:['fill','top'], 

                spacing:5, 

                 st: StaticText { text:'""" + localize(_strings.STR_COMPORT) + """' },

                 param: Group { 

                    orientation: 'row', 

                    alignment: ['fill', 'middle'],

                    port: EditText { helpTip:'""" + localize(_strings.STR_COMPORT_TIP) + """', text:'2043', alignment:['left','middle'], minimumSize:[50, -1]}, 

                    resetButton: Button { text:'""" + localize(_strings.BTN_DEFAULT) + """', helpTip:'""" + localize(_strings.BTN_DEFAULT_TIP) + """', properties:{name:'reset'}, alignment:['right','middle']},

                 },                 

            }, 

        },

        buttons: Group {

            margins: [0, 10, 0, 0], alignment: ['right', 'bottom'], """ + (($.os.indexOf("Windows") != -1) ? okRes + cancelRes : cancelRes + okRes) + """

        },

    }""";



    var dialog = new Window(dialogLayout, localize(_strings.STR_TITLE));

    

    dialog.settings.c4dsettings.param.port.text = settingsObject.C4D_PORT;

    

    dialog.settings.c4dsettings.param.port.onChanging = function() 

    { 

        if (this.text.match(/[^\d]/)) 

            this.text = this.text.replace(/[^\d]/g, ''); 



        if(this.text.length > 4)

            this.text = this.text.substring(0, 4);

    }



    dialog.settings.c4dsettings.param.reset.onClick = function() 

    {

        if (confirm(localize(_strings.STR_REALLYRESET), true, localize(_strings.STR_REALLYRESET)))

            dialog.settings.c4dsettings.param.port.text = settingsObject.C4D_PORT_DEFAULT;

     }; 

    

    dialog.buttons.okButton.onClick = function() 

    {   

        if(dialog.settings.c4dsettings.param.port.text.length > 0 && dialog.settings.c4dsettings.param.port.text != "0")

        {

            result.dialogAction = "ok";

       

            result.settings = {

                C4D_PORT: dialog.settings.c4dsettings.param.port.text

            };

       

            alert(localize(_strings.STR_CHANGEAPPLY));

        }       

        dialog.close(0);

    };



    dialog.buttons.cancelButton.onClick = function() 

    {

        dialog.close(0);

    };



    return dialog; 

};



var dialog = buildDialog(settingsObject, resultObject);

dialog.show();



var returnResult = function(resultObject) 

{

    if (resultObject.dialogAction == "cancel") return "cancel";

    

    return JSON.stringify(resultObject);

}



returnResult(resultObject);