﻿AjaxInterface = function () {
    this._data = null;
    this._dataUrl = null;
    this._type = null;
    this._dataSource = null;
    this._handlerBegin = null;
    this._handlerSuccess = null;
    this._handlerError = null;
}

AjaxInterface.Load = function () {
    var _dados = new AjaxInterface();
    _dados.initialize();
    return _dados;
}

AjaxInterface.prototype = {

    initialize: function () { },

    executeBind: function (dataUrl, data, type, handlerSuccess, handlerError, handlerBegin) {
        this._type = type;
        this._dataUrl = dataUrl;
        this._data = data;
        this._handlerSuccess = handlerSuccess;
        this._handlerError = handlerError;
        this._handlerBegin = handlerBegin;
        this.dataBind();
    },

    dataBind: function () {
        $.ajax({
            type: this._type,
            cache: false,
            data: this._data,
            traditional: true,
            //contentType: "application/json; charset=utf-8",
            dataType: "json",
            url: this._dataUrl,
            beforeSend: this._handlerBegin,
            success: this._handlerSuccess,
            error: this._handlerError
        });
    },

    _carregando: function (objIn, objOut) {
        if (objIn != null) { $('#' + objIn).show(); }
        if (objOut != null) { $('#' + objOut).hide(); }
    },

    _onfocus: function () {

    },

    _onblur: function () {

    },

    _htmlEncode: function (value) {
        return $('<div/>').text(value).html();
    },

    _htmlDecode: function (value) {
        return $('<div/>').html(value).value();
    },

    _limpaTextoCampoBusca: function (e) {
        var array = e.data.split('|');
        var str = $('#' + array[0]).val();
        if (str == array[1]) {
            $('#' + array[0]).val('');
        }
    },

    _addTextoCampoBusca: function (e) {
        var array = e.data.split('|');
        var texto = array[1];
        var str = $('#' + array[0]).val();
        if (str == '') {
            $('#' + array[0]).val(texto);
        }
    },

    _msgRetorno: function (info) {
        $('#infoTop').empty().html('<div id="ContInfo">' + info + '</div>').slideDown('slow').delay(5000).fadeOut('slow');
        //$('#ContInfo').css();
    },

    _requestAFToken: function (data) {
        data.__RequestVerificationToken = $("input[name=__RequestVerificationToken]").val();
        return data;
    },

    _limitTextArea: function (field, count) {
        var max = 400;
        if (field.value.length > max) {
            field.value = field.value.substring(0, max);
        } else {
            count.value = max - field.value.length;
        }

    }
}
