$(document).ready(function () {
    attachFtrEvents();
    ajaxUrlListener();
});

function attachFtrEvents() {
    $('.ftr-pop').click(function (e) {
        e.preventDefault();
        wPop($(this).attr('href'), 'legal', 700, 550, 'yes');
    });
}

function wPop(url, winName, wWidth, wHeight, scrll) {
    var scrollB;
    if (!scrll) {
        scrollB = 'no';
        var pWidth = wWidth;
        var rSize = 'no'
    }
    else {
        scrollB = scrll;
        wWidth = parseInt(wWidth) + 20;
        var rSize = 'yes'
    }
    var iMyWidth;
    var iMyHeight;
    iMyWidth = (window.screen.width / 2) - (wWidth / 2 + 10);
    //half the screen width minus half the new window width (plus 5 pixel borders).
    iMyHeight = (window.screen.height / 2) - (wHeight / 2 + 15);
    //half the screen height minus half the new window height (plus title and status bars).
    var zWin = window.open(url, winName, "status=no,width=" + wWidth + ",height=" + wHeight + ",resizable=" + rSize + ",left=" + iMyWidth + ",top=" + iMyHeight + ",screenX=" + iMyWidth + ",screenY=" + iMyHeight + ",scrollbars=" + scrollB);
    zWin.focus();
}

function formValidate() {
    $('.can-input').smartInput();

   // validate signup form on keyup and submit
    var validator = $("#canForm").validate({
        rules: {
            ffcans: {
                number: true
            },
            frcans: {
                number: true
            }
        },
        messages: {
            ffcans: {
                number: "Please enter a number of 0 or greater before calculating."
            },
            frcans: {
                number: "Please enter a number of 0 or greater before calculating"
            }
        },
        // specifying a submitHandler prevents the default submit, good for the demo 
        submitHandler: function (e) {
            makeCalculations();
        },
        // set this class to error-labels to indicate valid fields 
        success: function (label) {
            // set   as text for IE 
            label.html(" ").addClass("checked");
        }
    });
}

function ajaxUrlListener() {
    $('.ajx-url').click(function (e) {
        e.preventDefault();
        getAjaxContent($(this).attr('href'));
    });
}

function getAjaxContent(url) {
    $('#main-content').hide();
    $.ajax({
        url: url,
        success: function (data) {
            $('#main-content').html(data);
            formValidate();
            ajaxUrlListener();
            $('#main-content').fadeIn();
            $('#main').removeClass('bg-main-results');
        }
    });
}

function makeCalculations() {
    var ffcans = $('#ffcans').val();
    var frcans = $('#frcans').val();
    var allcansSum = parseFloat(ffcans) + parseFloat(frcans);
    if (allcansSum > 0) {
        var allcans = [ffcans, frcans];
        updateCalculations(allcans);
    }
    else {
        var validator = $("#canForm").validate();
        validator.showErrors({ "ffcans": "Enter a number greater than 0 in at least one field", "frcans": "Enter a number greater than 0 in at least one field" });

    }
}

function updateCalculations(allcans) {
    var fftv = parseFloat(allcans[0]);
    var ffbulb = parseFloat(allcans[0] * 2);
    var fftotal = (fftv + ffbulb);
    
    var frtv = parseFloat(allcans[1] * 2);
    var frbulb = parseFloat(allcans[1] * 3);
    var frtotal = (frtv + frbulb);

    if (fftotal == 0 && frtotal != 0)
    {
        var badgeClass = 'Friskies';
    }
    else if (frtotal == 0 && fftotal != 0)
    {
        var badgeClass = 'FancyFeast';
    }
    else
    {
        var badgeClass = 'Both';
    }

    sendToDatabase(badgeClass);
    
    var tv = parseFloat(fftv + frtv);
    var bulb = parseFloat(ffbulb + frbulb);
    
    $('#main-content').hide();

    $.ajax({
        url: '/_res/snippets/results.html',
        success: function (data) {
            $('#main-content').html(data);

            var bulbTimeUnit = ' hours';
            if (bulb == 1) {
                bulbTimeUnit = ' hour';
            }
            
            var formattedBulb = addCommas(bulb);
            $('#total-bulb').html(formattedBulb + bulbTimeUnit);

            var tvTimeUnit = ' hours';
            if (tv == 1) {
                tvTimeUnit = ' hour';
            }
          
            var formattedTv = addCommas(tv);
            $('#total-tv').html(formattedTv + tvTimeUnit);

            $('#special-badge').addClass(badgeClass);
        },
        complete: function () {
            $('#main-content').fadeIn();
            ajaxUrlListener();
            $('#main').addClass('bg-main-results');
        }
    });
}

function addCommas(nStr) {
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    return x1 + x2;
}

function sendToDatabase(badgeState) {
    $.ajax({
        url: '/_res/ws/TrackService.asmx/TrackBadge?badge=' + badgeState,
        success: function (data) {
            //alert('done');
        }

    });
}

function publishToWall() {
    var pic = facebookRoot + "/_res/i/fb-badge-ff-fr.png";
    var desc = "I'm recycling my Fancy Feast&reg; Gourmet Cat Food and Friskies&reg; Cat Food cans. I hope you'll do the same.";
    if ($('#special-badge').hasClass('FancyFeast')) {
        pic = facebookRoot + "/_res/i/fb-badge-ff.png";
        desc = "I'm recycling my Fancy Feast&reg; Gourmet Cat Food cans. Find out how much energy you can help save.";
    }
    else if ($('#special-badge').hasClass('Friskies')) {
        pic = facebookRoot + "/_res/i/fb-badge-fr.png";
        desc = "I'm recycling my Friskies&reg; Cat Food cans and saving energy. Help make a difference too.";
    }
    FB.ui({
        method: "feed",
        name: "Together We Can",
        link: facebookRoot,
        picture: pic,
        description: desc
    });
}
























