﻿/// <reference path="jquery-1.4.1.min-vsdoc.js" />
$.urlParam = function(name) {
    var results = new RegExp('[\\?&]' + name + '=([^&#]*)').exec(window.location.href);
    if (!results) { return 0; }
    return results[1] || 0;
}
function notify(txt) {
    $(document).ready(function() {
        if ($('#message').hasClass('open')) {
            //ya esta abierto: cerrar, cambiar txt, abrir
            $('#message').animate({ top: -50 }, 'fast', 'linear', function() {
                $('#msgtxt').html(txt);
                $('#message').animate({ top: 0 }, 1000, 'easeOutBounce');
            });
        } else {
            //esta cerrado: cambiar txt, abrir
            $('#msgtxt').html(txt);
            $('#message').animate({ top: 0 }, 1000, 'easeOutBounce');
        }
        $('#message').addClass('open');
    });
}
function closeNotify() {
    $(document).ready(function() {
        if ($('#message').hasClass('open')) {
            $('#message').animate({ top: -50 }, 250).removeClass('open');
        }
    });
}

function updateEnter(theid) {
    theid = theid.replace('cant', '');
    updateCart(theid)
}
function updateCart(pid) {
    var cant = $('#cant' + pid).val();
    $('#idProducto').val(pid);
    $('#Cantidad').val(cant);
    $('#op').val('update');
    $('#cartForm').submit();
}
function delFromCart(pid) {
    $('#idProducto').val(pid);
    $('#op').val('delete');
    $('#cartForm').submit();
}
function addprod(theid) {
    theid = theid.replace('cant', '');
    aTC(theid);
}
function aTC(producto) {
    var cant = $('#cant' + producto).val();
    var theUrl;
    var params;
    if (parseFloat(cant)) {
        cant = parseInt(cant);
        theUrl = '/Tienda/Carrito/Add/' + producto;
        params = 'id=' + producto + '&cant=' + cant;
        closeNotify();
        var sc = $('#sidecart');
        var cl = $('#cartload');
        sc.hide('fast', loadSideCart(theUrl, params));
        cl.fadeIn('normal');
    } else { 
        notify('La cantidad debe ser numérica');    
    }
    function loadSideCart(theUrl, params) {
        sc.load(theUrl, params, function(response, status, xhr) {
            if (status == "error") {
                showCartError();
            } else {
                showNewCart();
            }
        });
    }
    function showCartError() {
        sc.html('Ocurrio un error al cargar su carrito');
        sc.show('normal', hideLoader());
    }
    function showNewCart() {
        sc.show('normal', hideLoader());
        if (cant == 1) {
            notify('1 producto agregado a su carrito');
        } else {
            notify(cant + ' productos agregados a su carrito');
        }
    }
    function hideLoader() {
        cl.fadeOut('normal');
    }
}


$(document).ready(function() {
    // enter to do "updateEnter"
    $('.onenterupdate').keydown(function(event) {
        var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));
        if (keycode == 13) { updateEnter(this.id) }
    }); // enter to do "addtoCart"
    $('.onenteradd').keydown(function(event) {
        var keycode = (event.keyCode ? event.keyCode : (event.which ? event.which : event.charCode));
        if (keycode == 13) { addprod(this.id) }
    });
    // boolean
    $('.boolhide').each(function(index) {
        var id = jQuery(this).attr('id');
        $('#' + id + 'button').click(function() { switchtoggle(id) });
    });
    // numeric
    $('.numeric').change(function() {
        var id = '#' + jQuery(this).attr('id');
        $(id).val(onlyNumeric(id));
    });
    // sort zebra table
    $('.sortzebra tr:even').addClass('alt');
    $('.sortzebra tr').mouseover(function() { $(this).addClass("over"); }).mouseout(function() { $(this).removeClass("over"); });

    var msg = $.urlParam('Message');
    if (msg.length > 0) {
        notify(unescape(msg));
    }
});
/* datatype validations */
function onlyNumeric(theId) {
    var valid = '0123456789.-';
    var clean = ''
    var txt = $(theId).val();

    for (var i = 0; i < txt.length; i++) {
        if (valid.indexOf(txt.charAt(i)) > -1) {
            clean += txt.charAt(i);
            if (txt.charAt(i) == '.') {
                valid = valid.replace('.', '');
            }
            if (txt.charAt(i) == '-') {
                valid = valid.replace('-', '');
            }
        }
    }
    var mult = 1;
    if (clean.charAt(0) == '-') mult = -1;
    clean = clean.replace('-', '');
    clean = parseFloat(clean) * mult;
    if (isNaN(clean)) {
        return '';
    } else {
        return clean;
    }
}
/* lib functions*/
function Left(str, n) {
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else
        return String(str).substring(0, n);
}
function Right(str, n) {
    if (n <= 0)
        return "";
    else if (n > String(str).length)
        return str;
    else {
        var iLen = String(str).length;
        return String(str).substring(iLen, iLen - n);
    }
}
function register() {
    notify('Para la funcionalidad de comprar es necesario estar registrado como usuario.');
}
function switchtoggle(id) { 
    alert($('#' + id));
}
