﻿var disabledCssClass = "disabled";
var selectedCssClass = "selected";

var selectedImages = new Array();

var animalCount = null;
var selectedCount = 0;
var _gaq = _gaq || [];
$(function () {
    animalCount = $('#animalSelectCount').val();
    $('div.imageToggle > div').not('.disabled').click(ImageToggled);
    $('div.imageToggle > div.disabled').click(function () {
        alert('Oops! It looks like some of your animals are already enrolled in Purina Difference™ Rewards. These animals may already be benefitting from Purina® feed and Rewards offers, and are therefore ineligible for the 60 Day Challenge. Please feel free to sign up any other eligible animals you may have, as shown by the available buttons.');
    });

    // Repopulate form if submission error
    $("input[name$='ImageToggleValue']").each(SetSelected);

    // Set character count on page load 
    if ($('#StoryTextBox')[0] != null)
        checkFieldLength($('#StoryTextBox')[0], 'current_num_ct', '2500'); //passes ref of input and div to update, count limit

    // Update character count on update
    $('#StoryTextBox').keyup(function () {
        //alert($(this));
        checkFieldLength(this, 'current_num_ct', '2500'); //passes ref of input and div to update, count limit
    });
});

function SetSelected() {
    if ($(this).val() == '1')
        ActivateImage($(this).prev());
}

function ImageToggled() {
    if ($(this).hasClass(selectedCssClass)) {
        DeactivateImage(this);
        return;
    }

    ActivateImage(this);
    return;
}

function DeactivateImage(element) {
    $(element).removeClass(selectedCssClass);
    $(element).next('input').val('0');
    return;
}

function ActivateImage(element) {
    while ( selectedImages.length > (animalCount-1) )
        DeactivateImage(selectedImages.shift());

    selectedImages.push(element);
    $(element).addClass(selectedCssClass);
    $(element).next('input').val('1');
    return;
}

function getYtThumb(url,size) {
    if (url === null) { return ""; }

    size = (size === null) ? "small" : size;
    var vid;
    var results;

    results = url.match("[\\?&]v=('^&#]*)");

    vid = (results === null) ? url : results[1];

    if (size === "small") {
        return "http://img.youtube.com/vi/" + vid + "/2.jpg";
    } else {
        return "http://img.youtube.com/vi/" + vid + "/0.jpg";
    }
}

function initShareDialog() {

    if ($('#submitButton').length == 0) {
        setTimeout(initShareDialog, 250);
    } else {
        Recaptcha.create("6Ld6CbwSAAAAADiMfJeirDln7Yn7kqh7URwUYdr4", "recaptcha_div", {
            theme: "custom" //,
            //callback: Recaptcha.focus_response_field
        });
    }
}
    
//fancy box functions
$(document).ready(function () {

    //$('#submitButton').click(submitShare);
   
    $("body").delegate("#submitButton","click",function(){
        submitShare();
    });    
    
    $(".fancybox").fancybox({
        'overlayShow': true, 'frameWidth': 979, 'frameHeight': 850, 'centerOnScroll': false, 'zoomInSpeed': 200, 'overlayOpacity': 0.6, 'hideOnOverlayClick': false, 'hideOnContentClick': false
    });

    $(".smallFancybox").fancybox({
        'overlayShow': true, 'frameWidth': 516, 'frameHeight': 850, 'centerOnScroll': false, 'zoomInSpeed': 200, 'overlayOpacity': 0.6, 'hideOnOverlayClick': false, 'hideOnContentClick': false
    });

    $(".shareOverlay").fancybox({
        'overlayShow': true, 'frameWidth': 516, 'frameHeight': 850, 'centerOnScroll': false, 'zoomInSpeed': 200, 'overlayOpacity': 0.6, 'hideOnOverlayClick': false, 'hideOnContentClick': false
    });

    $(".shareOverlay").click(function () { setTimeout(initShareDialog, 250) });

    $("body").delegate(".fancybox", "click", function () {
        _gaq.push(['_trackPageview', '/modal/' + $(this).attr('href')]);
    });
    $("body").delegate(".smallFancybox", "click", function () {
        _gaq.push(['_trackPageview', '/modal/' + $(this).attr('href')]);
    });
    $("body").delegate(".pdf_download", "click", function () {
        _gaq.push(['_trackPageview', '/downloads/' + $(this).attr('href')]);
    });
    $("a").each(function () {
        if ($(this).hasClass('trackPageview')) {
            $(this).bind('click', function () {
                //alert('track pv ' + $(this).attr('href'));
                _gaq.push(['_trackPageview', '/links/' + $(this).attr('href')]);
            });
        } else if ($(this).hasClass('trackPageviewAlt')) {
            $(this).bind('click', function () {
                // alert('track pv ' + $(this).attr('tracking'));
                _gaq.push(['_trackPageview', '/links/' + $(this).attr('tracking')]);
            });
        } else if ($(this).hasClass('trackSocial')) {
            $(this).bind('click', function () {
                //alert('track social ' + $(this).attr('tracking'));
                _gaq.push(['_trackEvent', 'links', 'clicked', $(this).attr('tracking')]);
            });
        } else if ($(this).hasClass('trackEvent')) {
            $(this).bind('click', function () {
                //alert('track event' + $(this).attr('href'));
                _gaq.push(['_trackEvent', 'links', 'clicked', $(this).attr('href')]);
            });
        } else if ($(this).hasClass('trackEventAlt')) {
            $(this).bind('click', function () {
                //alert('track event' + $(this).attr('tracking'));
                _gaq.push(['_trackEvent', 'links', 'clicked', $(this).attr('tracking')]);
            });
        } else if ($(this).attr('target') == '_blank') {
            $(this).bind('click', function () {
                //alert('track default ' + $(this).attr('href'));
                _gaq.push(['_trackPageview', '/exitLinks/' + $(this).attr('href')]);
            });
        }
    });
    $(".ytThumbImg").each(function () {
        var theSrc = getYtThumb($(this).attr('id'), 'small');
        $(this).attr('src', theSrc);
        $(this).attr('width', '96');
    });
});


function addDetailsPop() {
   // alert("details pop");
}

//character length detection
function checkFieldLength(inputField, divToUpdate, characterLimit) {
    
    var currentLength = inputField.value.length;
    document.getElementById(divToUpdate).innerHTML = currentLength; //update current length

    if (currentLength >= characterLimit) 
    {
        $('#' + divToUpdate).addClass("max_count");
    }
    else  
    {
        $('#' + divToUpdate).removeClass("max_count");
    }
  
}

// Read a page's GET URL variables and return them as an associative array.
function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

    for (var i = 0; i < hashes.length; i++) {

        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }

    return vars;
}

function submitShare() {


    $('.fieldError').html('');

    var requestData = {
        emailOne: $('input[id$=FriendEmailOne]').val(),
        emailTwo: $('input[id$=FriendEmailTwo]').val(),
        emailThree: $('input[id$=FriendEmailThree]').val(),
        emailFour: $('input[id$=FriendEmailFour]').val(),
        customMessage: $('textarea[id$=StoryTextBox]').val(),
        captchaChallenge: $('input[id$=recaptcha_challenge_field]').val(),
        captchaResponse: $('input[id$=recaptcha_response_field]').val()
    };

    //alert(requestData);

    doAjaxCall("/Ajax/SubmitShare.aspx", requestData, emailShareReply, false);
}

function emailShareReply(reply) {
    
    if (reply.Success == "true") {
        $.fn.fancybox.close();
        setTimeout(successRedirect, 1000);
    } else {
        // Reload captcha and clear previous captcha response
        Recaptcha.reload();
        $('#recaptcha_response_field').html('');

        displayErrors(reply.Errors);
    }
}

function successRedirect() {
    window.location = "/EmailShareSuccess.aspx";
}
    

function doAjaxCall(url, requestData, successFunction, secure) {
    var hostname = getBaseURL();

    if (secure == null || secure != false)
        baseUrl = "https://" + hostname;
    else
        baseUrl = "http://" + hostname;

    $.ajax({
        type: "GET",
        url: baseUrl + url,
        data: requestData,
        dataType: "jsonp",
        success: successFunction
    });

    return false;
}

function displayErrors(Errors) {
    $.each(Errors,
        function (index, error) {
            $('input[id$=' + error.Field + ']').add('textarea[id$=' + error.Field + ']').next('.fieldError').html(error.Error);
        }
    );
}

function getBaseURL() {
    var url = location.href;  // entire url including querystring - also: window.location.href;
    return  url.substring(7, url.indexOf('/', 14));
}


