Emv.Form = {

    dialogPosition: 'center',

    ajaxBind: function (formId, buttonId, rUrl, dgPosition) {

        if ("undefined" != typeof(dgPosition)) {

            Emv.Form.dialogPosition = dgPosition;
        }

        if ("undefined" != typeof(buttonId)) {

            $("#" + buttonId).click( function() { $("#" + formId).submit(); } );
        }

        $("#" + formId).keypress(function(event) {

            if (event.keyCode == "13") {

                $("#" + formId).submit();
            }
        });

        if ("undefined" != typeof(rUrl)) {

            $("#" + formId).bind("submit", {url: rUrl}, Emv.Form.ajaxSubmit);
        }
    },

    ajaxSubmit: function(event) {

        event.preventDefault();

        // Get login event and set width and height
        var regex = /(community\/ajax\/login)/;
        regex.exec(event.data.url);

        var width  = undefined;
        var height = undefined;
        if (RegExp.$1 && RegExp.$1 == 'community/ajax/login' && event.target.id == 'toplogin') {

            width =  320;
            height = 60;
        }

        var request = new Emv.Ajax(width, height);

        if ("undefined" != typeof(event.target.action) &&
            "" !== event.target.action &&
            -1 == event.target.action.indexOf('javascript')) {

            request.setForwardUri(event.target.action);
        }
        request.setDialogPosition(Emv.Form.dialogPosition);
        request.request(event.data.url, $(this).serialize());
    },

    inputFieldClear: function(element, defaultText) {

        if ("undefined" == typeof(element.value)) {

            return;
        }

        // Delete only if text is not a user specific one
        if (element.value === defaultText) {

            element.value = '';
        } else if (element.value === '') {

            element.value = defaultText;
        }
    }
};
