﻿/// <reference path="jquery-1.4.1-vsdoc.js" />
/// <reference path="vtex.common.js" />
/// <reference path="vtex.jsevents.js" />
/// <reference path="vtex.skuEvents.js" />

var notifymeTitle = "";
var notifymeUrl = "";
var notifymeError = "";
var notifymeSuccess = "";
var notifymeLoading = "";
var notifymeskuData = new Vtex.Commerce.JSEvents.SkuData()

$(document).ready(function () {
    var buyButtonListener = new Vtex.JSEvents.Listener('buyButtonListener', BuyButton_OnSkuDataReceived);
    skuEventDispatcher.addListener(skuDataReceivedEventName, buyButtonListener);
});

function BuyButton_OnSkuDataReceived(e) {
    if (e.skuData.id > 0) {
        notifymeskuData = e;

        var amount = $('.buy-button-amount').attr('value');
        if (e.skuData.availability == true) {
            if (e.skuData.HasServiceAtServicePage == true) {
                if (amount != null && amount != '0') {
                    $('.buy-button').attr('href', '/Site/Servicos.aspx?IdProduto=' + e.skuData.idProduct + '&IdSku=' + e.skuData.id + '&quantidade=' + amount);
                }
                else {
                    $('.buy-button').attr('href', '/Site/Servicos.aspx?IdProduto=' + e.skuData.idProduct + '&IdSku=' + e.skuData.id);
                }
            }
            else {
                if (amount != null && amount != '0') {
                    $('.buy-button').attr('href', '/Site/Carrinho.aspx?IdSku=' + e.skuData.id + '&quantidade=' + amount);
                }
                else {
                    $('.buy-button').attr('href', '/Site/Carrinho.aspx?IdSku=' + e.skuData.id);
                }
            }
            $('.unavailable-button').attr('style', 'display:none');
            $('.notifyme').attr('style', 'display:none');
            $('.buy-button').attr('style', 'display:block');
        }
        else {
            $('.buy-button').attr('style', 'display:none');
            if (e.skuData.notifyMe) {
                $('.unavailable-button').attr('style', 'display:none');
                $('.notifyme').attr('style', 'display:block');
            }
            else {
                $('.unavailable-button').attr('style', 'display:block');
                $('.notifyme').attr('style', 'display:none');
            }
        }
    }
}

$(document).ready(function () {
    if ($('.notifyme').length > 0) {
        notifymeOnButtomOkClick();
    }
});

function notifymeOnButtomOkClick() {
    $('.notifyme-button-ok').click(function () {
        var notifymeskuid = '';
        if (notifymeskuData.skuData === undefined || notifymeskuData.skuData.id === undefined) {
            //alert("Original");
            notifymeskuid = $('.notifyme-skuid').val();
        }
        else {
            //alert("Dinamico");
            notifymeskuid = notifymeskuData.skuData.id;
        }
        var clientName = $('.notifyme-client-name').val();
        var clientEmail = $('.notifyme-client-email').val();
        clientName = clientName.replace("Digite seu nome...", "")
        clientEmail = clientEmail.replace("Digite seu e-mail...", "")
        if (clientName.length > 0 && notifymeCheckEmail(clientEmail)) {
            notifymeTitle = $('.notifyme-title').val();
            notifymeSuccess = $('.notifyme-success').val();
            notifymeError = $('.notifyme-error').val();
            notifymeLoading = '<p>' + $('.notifyme-loading').val() + '</p>';
            var dataToPost = { notifymeClientName: clientName, notifymeClientEmail: clientEmail, notifymeIdSku: notifymeskuid };
            var url = '/no-cache/AviseMe.aspx';
            ajaxRequest('POST', url, dataToPost, '.notifyme', '');
        }
    })
}


function notifymeSelect(sender, defaultValue) {
    if (sender.value == defaultValue) sender.value = '';
    else sender.select();
}

function notifymeLeave(sender, defaultValue) {
    if (jQuery.trim(sender.value) == '') sender.value = defaultValue;
}

function ajaxRequest(method, url, postData, target, callback) {
    $(target).html(notifymeMakeTitle() + notifymeLoading);
    $.ajax({
        type: method,
        url: url,
        data: postData,
        success: function (dataResult) {
            if (target != null && target != '') {
                $(target).html(dataResult);
                if (dataResult == 'true') {
                    $(target).html(notifymeMakeSuccessMessage());
                } else {
                    $(target).html(notifymeMakeErrorMessage());
                };
            }
            if (callback != null && callback != '') callback();
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            $(target).html(notifymeMakeErrorMessage());
        }
    });
}

function notifymeMakeSuccessMessage() {
    return notifymeMakeTitle() + '<FIELDSET class="success"><label><em>' + notifymeSuccess + '</em></LABEL></FIELDSET>';
}

function notifymeMakeTitle() {
    return '<h3>' + notifymeTitle + '</h3>';
}

function notifymeMakeErrorMessage() {
    return notifymeMakeTitle() + '<fieldset class="error"><label>' + notifymeError + '</label></fieldset>';
}

function notifymeCheckEmail(email) {
    if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(email)) {
        return (true)
    }
    notifymeError = "Email inválido, digite novamente";
    if ($('.notifyme').html().indexOf(notifymeMakeErrorMessage()) == -1) {
        $('.notifyme').append(notifymeMakeErrorMessage())
    }
    return (false)
}
