﻿var tagOriginalHtml = "";
var tagProductTitle = "";
var tagProductError = "";
var tagProductSuccess = "";
var tagProductSuccess2 = "";
var tagProductLoading = "";


$(document).ready(function() {
    if ($('.product-tag').length > 0) {
        tagOriginalHtml = $('.product-tag')[0].outerHTML;
        tagOnButtomOkClick();
    }
});

function tagOnButtomOkClick() {
    $('.btn-add-product-tag').click(function() {

        var tagName = $('.product-tag-name').val();
        if (tagName.length > 3) {

            var productId = $('.product-tag-product-id').val();
            var dataToPost = { tagName: tagName, productId: productId };
            var url = '/inserirtagproduto' ///ProductTag/InsertTag'

            ajaxRequestTag('POST', url, dataToPost, '.user-included-tags', '');
        } else {
            $('.tag-product-message-user').html('<font color="red">O nome da tag é obrigatório, e deve conter no mínimo 3 caracteres!</font>');
        }
    }
    )
}

function tagHasApplicationException(dataResult) {
    var re = /\<applicationExceptionObject\>(.*?)\<\/applicationExceptionObject\>/i;
    var returnMessage = re.exec(dataResult);
    if (returnMessage != null && returnMessage != 'undefined' && returnMessage != '' && returnMessage.length > 0) {
        if (returnMessage[1] != 'undefined' && returnMessage[1] != '') {

            return returnMessage[1];
        }
    } else {

        return '';
    }
}

function ajaxRequestTag(method, url, postData, target, callback) {
    $.ajax({
        type: method,
        url: url,
        data: postData,
        success: function(dataResult) {

            if (target != null && target != '') {
                $('.tag-product-message-user').html('');
                var error = tagHasApplicationException(dataResult)

                if (error != '') {
                    $('.tag-product-message-user').html(error);
                } else {
                    $(target).html(dataResult);
                }
            }
            if (callback != null && callback != '')
                callback();

        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {

            tagProductMakeBackButtomEvent(target);

        }
    });
}

function tagProductMakeBackButtomEvent(target) {

    $(target).html(tagProductMakeErrorMessage());
    $('.btn-add-product-tag-back').click(function() {
        $(target).replaceWith(tagOriginalHtml);
        tagProductOnButtomOkClick();
    })
}


function tagProductMakeSuccessMessage() {
    return tagProductMakeTitle() + '<FIELDSET class="success"><label><em>' + tagProductSuccess + '</em><br />' + tagProductSuccess2 + '</LABEL></FIELDSET>' + tagProductMakeSpan();
}

function tagProductMakeTitle() {
    return '<h3>' + tagProductTitle + '</h3>';
}

function tagProductMakeErrorMessage() {
    return tagProductMakeTitle() + '<fieldset class="error"><label>' + tagProductError + '</label></fieldset>' + tagProductMakeBackButtom() + tagProductMakeSpan();
}

function tagProductMakeBackButtom() {
    return '<INPUT class="bt-voltar .btn-add-product-tag-back" type="button">';
}

function tagProductMakeSpan() {//desenha as bordas arredondadas pelo stilo.
    var aux = '<span class=\"rt\"></span>' +
                '<span class=\"rt\"></span>' +
                '<span class=\"lb\"></span>' +
                '<span class=\"lt\"></span>';
    return aux;
}


