﻿jQuery.fn.maxHeight=function(){var a=0;this.each(function(){a=Math.max(a,$(this).outerHeight(true))});return a};

ui.mask = { el: $('div.page-mask') };

ui.debug = function (message) {

    if (typeof (console) != "undefined") {
        console.log(message);
    }
}

ui.track = function (event, el) {

    var _uri = document.location.pathname;

    ui.debug(event);

    try {
        if (event == 'link_click') {

            if ($(el).is('#whycalciumclick')) {
                ui.track.spotLight('1869704', 'yopla867', 'yop_o899');
            }

            if ($(el).is('#calculatorclick')) {
                ui.track.spotLight('1869704', 'yopla867', 'yop_o405');
            }

            // site logo
            if ($(el).parents('.page-logo').length > 0) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Yoplait Logo');

                // site navigation
            } else if ($(el).parents('.page-navigation').length > 0) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Yoplait Navigation:' + $(el).text());

                // site footer
            } else if ($(el).parents('.page-footer').length > 0) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Yoplait Footer:' + $(el).text());

                // fcas
            } else if ($(el).parents('.promo-content').length > 0) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:FCA:' + $('img', el).attr('alt'));
                if ($(el).filter('[href="/coupon_gateway.aspx?targetCoupon=yoplait_greek"]').size() > 0) {
                    if (document.location.pathname == '/products/yoplait-greek-yogurt') {
                        ui.track.spotLight('1869704', 'yopla867', 'yopla708');
                    } else if (document.location.pathname == '/coupons') {
                        ui.track.spotLight('1869704', 'yopla867', 'yopla131');
                    }
                }

                // heros
            } else if ($(el).parents('.hero-rotater').length > 0 && $(el).parents('.items').length > 0) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Hero:' + $('img', el).attr('alt'));

                // article nav
            } else if ($(el).parents('.article-navigation').length > 0) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Article Navigation:' + $(el).text());

                // article read more
            } else if ($(el).parents('.article-details').length > 0 && $(el).parents('.article-navigation').length == 0) {

                if ($(el).parents('.featured-article').length > 0) {
                    dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Article Link:' + $(el).parents('.featured-article').find('.subtitle:first').next().text());
                } else {
                    dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Article Link:' + $(el).parent().prev('.article-subtitle').text());
                }
            }

            // Tools
            if ($(el).is('.print-button') || $(el).is('.tools-print')) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Print Button');
            }

            if ($(el).is('.tools-email')) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Email Button');
            }

            if ($(el).is('.tools-facebook')) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Facebook Button');
            }

            if ($(el).is('.tools-twitter')) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Twitter Button');
            }

            // TWTU
            if ($(el).parent('div.proceed-button').length > 0) {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 0:Start Now');
            }

            if ($('.twtu-step2').length > 0) {

                if ($(el).is('.backwards')) {
                    dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 2:Back Step');
                }
                if ($(el).is('.skip-ahead') || $(el).parents('.cheerleader').length > 0) {
                    dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 2:Skip Step');
                }

                if ($(el).is('.submit-button')) {
                    dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 2:Get Meal Plan');
                }
            }

            if ($(el).parents('div.twtu-step3').length > 0 && $(el).text() == 'see recipe') {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 3:Recipe Link:' + $(el).parent().text());
            }

            if ($(el).parents('div.twtu-step3').length > 0 && $(el).text() == 'see list') {
                dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 3:List Link:' + $(el).parent().text());
            }

        }

        // Tools
        if (event == "print_click") {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Print Button');
        }

        if (event == "email_click") {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Email Button');
        }

        if (event == "facebook_click") {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Facebook Button');
        }

        if (event == "twitter_click") {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Twitter Button');
        }


        // New at Yoplait
        if (event.indexOf("yoplait-tv_video_name") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Video Navigation:' + event.split("=")[1].replace("Yoplait/", ""));
        }

        if (event.indexOf("yoplait-tv_init_play_click_video_name") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Video Player:' + event.split("=")[1].replace("Yoplait/", ""));
        }

        if (event.indexOf("yoplait-tv_pause_but_click") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Video Player:Pause Button');
        }

        if (event.indexOf("yoplait-tv_play_but_click") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Video Player:Play Button');
        }

        if (event == 'yoplait_today_tips_click') {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:Tips');
        }

        if (event == 'yoplait_today_eba_click') {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:EatBetterAmerica');
        }

        //TWTU: Step 1
        if (event.indexOf("Two_Week_Tune_Up__Clicked_Life_Event3") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 1:Reunion');
        }

        if (event.indexOf("Two_Week_Tune_Up__Clicked_Life_Event5") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 1:Wedding');
        }

        if (event.indexOf("Two_Week_Tune_Up__Clicked_Life_Event4") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 1:Vaction');
        }

        if (event.indexOf("Two_Week_Tune_Up__Clicked_Life_Event2") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 1:Feel Good');
        }

        if (event.indexOf("Two_Week_Tune_Up__Clicked_Skip_Button") != -1) {
            dcsMultiTrack('DCS.dcssip', gGmiDcsSip, 'DCS.dcsuri', _uri, 'WT.ti', 'Click:TWTU:Step 1:Skip Step');
        }


    }
    catch (ex) {
        ui.debug(ex);
    }
}

ui.track.spotLight = function (source, gtype, category) {
    ui.debug('spotLight');
    var axel = Math.random() + "";
    var a = axel * 1000000000000000000;
    var doPing = new Image();
    doPing.src = 'http://ad.doubleclick.net/activity;src=' + source + ';type=' + gtype + ';cat=' + category + ';ord=' + a + '?';
    //doPing.onLoad = ui.track.passed;
    return false;
}

//ui.track.passed = function () {
//    $.noop();
//}

ui.mask.show = function () {

    ui.mask.el.css({ display: 'block' });
    $('body').trigger('ui:mask_show');
}

ui.mask.hide = function () {

    ui.mask.el.css({ display: 'none' });
    $('body').trigger('ui:mask_hide');
}

ui.shareemail = {};
ui.shareemail.url = document.location.pathname;
ui.shareemail.template = "da";
ui.shareemail.title = document.title;

ui.sharetwitter = {};
ui.sharetwitter.url = document.location.href;
ui.sharetwitter.title = document.title;

ui.sharefacebook = {};
ui.sharefacebook.url = document.location.href;

ui.init = function () {

    ui.track('page_load');

    ui.labels.emailoverlaytext = "To send the article to a friend please complete the following. All fields are required.";

    ui.mask.el.click(function () {
        ui.mask.hide();
    });

    $('a').click(function () {
       ui.track('link_click',this);
    });

	$('div.twtu-step2 div.submit-button').click(function () {
		ui.track('link_click',this);
    });

	/*$('div.twtu-step3 span.link-style').live('click',function () {
		ui.track('link_click',this);
    });*/

	$('div.article-content .tools-print').parent().css({cursor:'pointer'}).click(function() {
		$('body').trigger('ui:tools_print');
		return false;
	});



    $('a.tools-facebook').click(function () {
        var _url = ($(this).is('[shareurl]')) ? encodeURIComponent("http://" + document.location.hostname + $(this).attr('shareurl')) : encodeURIComponent(ui.sharefacebook.url);
        $(this).attr('href', 'http://www.facebook.com/share.php?u=' + _url).attr('target', '_blank');
    });

    $('body').bind('ui:tools_facebook', function (event) {
        var _url = (event.shareurl != undefined) ? encodeURIComponent("http://" + document.location.hostname + event.shareurl) : encodeURIComponent(ui.sharefacebook.url);
        window.open('http://www.facebook.com/share.php?u=' + _url, '_blank');
		ui.track('facebook_click',this);
    });



    $('a.tools-twitter').click(function () {
        var _url = ($(this).is('[shareurl]')) ? encodeURIComponent("http://" + document.location.hostname + $(this).attr('shareurl')) : encodeURIComponent(ui.sharetwitter.url);
        $(this).attr('href', 'http://twitter.com/share?text='+encodeURIComponent(ui.sharetwitter.title)+'&url=' + _url).attr('target', '_blank');
    });

    $('body').bind('ui:tools_twitter', function (event) {
        var _url = (event.shareurl != undefined) ? encodeURIComponent("http://" + document.location.hostname + event.shareurl) : encodeURIComponent(ui.sharetwitter.url);
        window.open('http://twitter.com/share?text='+encodeURIComponent(ui.sharetwitter.title)+'&url=' + _url, '_blank');
		ui.track('twitter_click',this);
    });



    $('a.tools-email').click(function () {
        $('[emailoverlay=emailoverlay]')[0].open();
        return false;
    });

    $('body').bind('ui:tools_email', function () {
        $('[emailoverlay=emailoverlay]')[0].open();
		ui.track('email_click',this);
    });



    $('a.tools-print').each(function () {
        $(this).attr('href', document.location.href + "?print=true").attr('target', '_blank');
    });

    $('body').bind('ui:tools_print', function () {
        window.open(document.location.href + "?print=true", '_blank');
		ui.track('print_click',this);
    });



    if (document.location.search.indexOf('print=true') != -1) {
        $('body').addClass('page-printable');
        window.print();
    }
	
	$('a.tools-email,a.tools-print,a.tools-facebook,a.tools-twitter').mouseenter(function() {
		$('img',this).css({top:-22});
	});

	$('a.tools-email,a.tools-print,a.tools-facebook,a.tools-twitter').mouseleave(function() {
		$('img',this).css({top:0});
	});
}
$.fn.superscript = function () {
    var repText = $(this).html();
    $(this).html(repText.replace(/(©|&copy;)|(<sup>(©|&copy;)<\/sup>)/g, "<sup>&copy;</sup>"));
}

$(document).ready(function () {
    
    //$(".page-body").superscript();

    ui.init();

    $('[navigation=navigation]').each(function () {

        var _nav = this;

        $('.item > a', this).each(function (i) {
            $(this).attr('navtrayindex', i);
            $(this).attr('navtrayheight', Math.ceil($('[navigation=tray] > div:eq(' + i + ')', _nav).find('a').length / 3));
        });

        $('.item > a', this).mouseenter(function () {
            var _tray = $(this).parents('[navigation=navigation]').find('[navigation=tray]')
            var _delta = Math.abs(_tray.height() - ($(this).attr('navtrayheight') * 32));

            _tray.attr('navtraycurrent', $(this).attr('navtrayindex'));

            _tray.find('div.clear-after').css({ display: 'none' }).filter(':eq(' + $(this).attr('navtrayindex') + ')').css({ display: 'block' });

            _tray.stop().animate({ height: $(this).attr('navtrayheight') * 32 }, _delta * 6, 'easeOutCirc');
        });

        $(this).mouseleave(function () {
            $(this).find('[navigation=tray]').stop().animate({ height: 0 }, $(this).find('[navigation=tray]').height() * 8, 'easeInCirc', function () {
                $(this).attr('navtraycurrent', -1);
            });
        });

        $(this).mouseenter(function () {
            if ($('[navigation=tray]', this).attr('navtraycurrent') != -1) {

                $(this).find('.item > a').filter(':eq(' + $('[navigation=tray]', this).attr('navtraycurrent') + ')').triggerHandler('mouseenter');
            }
        });
    });

    $('[rotator=rotator]').each(function () {

        this.autoplay = null;
        this.delay = $(this).attr('rotatordelay');
        this.locked = false;

        this.cards = $('div.item', this);

        this.cards.filter(':first').css({ zIndex: 12 });

        var _pagination = new Array();

        _pagination.push('<div class="pagination clear-after"><div class="scroll-left float-left"><img src="/ui/img/scroll-hero-rotator.png" class="pngfix" alt="" /></div>');

        this.cards.each(function () {

            _pagination.push('<div class="pagination-dot float-left"><img src="/ui/img/dot-hero-rotator.png" class="pngfix" alt="" /></div>');
        });

        _pagination.push('<div class="scroll-right float-right"><img src="/ui/img/scroll-hero-rotator.png" class="pngfix" alt="" /></div></div>');

        $(_pagination.join("")).css({ width: 47 + (this.cards.length * 17) }).appendTo($(this));
        $('div.pagination-dot img:first', this).css({ top: -23 });

        $('div.scroll-left').click(function () {
            var _hero = $('[rotator=rotator]')[0];

            _hero.stopAutoplay();
            _hero.transition(_hero.getNextCard(-1));
        });

        $('div.scroll-right').click(function () {
            var _hero = $('[rotator=rotator]')[0];

            _hero.stopAutoplay();
            _hero.transition(_hero.getNextCard(1));
        });

        $('div.pagination-dot').click(function () {
            var _hero = $('[rotator=rotator]')[0];

            _hero.stopAutoplay();
            _hero.transition($('div.pagination-dot').index(this));
        });

        $('div.pagination-dot').mouseenter(function () {
            $(this).find('img').css({ top: -23 });
        });

        $('div.pagination-dot').mouseleave(function () {
			var _hero = $('[rotator=rotator]')[0];
			var _index = $('div.pagination-dot',_hero).index(this);

			if(_hero.getCurrentCard() == _index) {
				$(this).find('img').css({ top: -23 });
			} else {
				$(this).find('img').css({ top: 0 });
			}
        });

        this.transition = function (index) {

            if (!this.locked) {

                this.locked = true;
                var _current = this.getCurrentCard();
                var $card = this.cards.filter(':eq(' + index + ')');

                if (_current != -1) {
                    this.cards.filter(':eq(' + _current + ')').css({ zIndex: 13 }).animate({ opacity: 0 }, 600, 'linear', function () {
                        $(this).css({ opacity: 0, zIndex: 11 });
                        $('[rotator=rotator]')[0].locked = false;
                    });
                }
                else {
                    this.locked = false;
                }

                $(this).find('div.pagination-dot img').css({ top: 0 }).filter(':eq(' + index + ')').css({ top: -23 });
                $card.removeAttr('style');
                $card.css({ zIndex: 12, top: 0, left: 0 });
            }
        }

        this.autoStep = function () {

            this.transition(this.getNextCard(1));
            this.autoplay = window.setTimeout("$('[rotator=rotator]')[0].autoStep()", this.delay);
        }

        this.startAutoplay = function () {

            this.autoplay = window.setTimeout("$('[rotator=rotator]')[0].autoStep()", this.delay);
        }

        this.stopAutoplay = function () {

            this.autoplay = window.clearTimeout(this.autoplay);
        }

        this.getNextCard = function (step) {

            var _next = (this.getCurrentCard() != -1) ? this.getCurrentCard() + step : 0;

            if (_next > this.cards.length - 1) {
                _next = 0;
            }

            if (_next < 0) {
                _next = this.cards.length - 1;
            }

            return _next;
        }

        this.getCurrentCard = function () {

            var _current = -1;

            this.cards.each(function (i) {
                if ($(this).css('zIndex') == 12) {
                    _current = i;
                }
            });

            return _current;
        }

        this.startAutoplay();
    });

	if($('div.spanish[emailoverlay=emailoverlay]').length > 0) {
		$('[emailoverlay=emailoverlay]:first').replaceWith($('div.spanish[emailoverlay=emailoverlay]'));
	}

    $('[emailoverlay=emailoverlay]').each(function () {

        this.locked = false;

        $('div.close', this).click(function () {

            $(this).parents('[emailoverlay=emailoverlay]')[0].close();
        });

        $('[emailoverlay=reset]', this).click(function () {

            $(this).parents('[emailoverlay=emailoverlay]')[0].reset();
        });

        $('[emailoverlay=submit]').click(function () {

            var _emailoverlay = $(this).parents('[emailoverlay=emailoverlay]')[0];

            if (!_emailoverlay.locked) {
                _emailoverlay.locked = true;

                var _isvalid = true;
                var _emailregex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

                if ($('#share-email-name').val().match(/\S/)) {
                    $('#share-email-name').parent('span').parent('div').prev('div.error').css({ display: 'none' });
                }
                else {
                    $('#share-email-name').parent('span').parent('div').prev('div.error').css({ display: 'block' });
                    _isvalid = false;
                }

                if (_emailregex.test($('#share-email-sender-address').val())) {
                    $('#share-email-sender-address').parent('span').parent('div').prev('div.error').css({ display: 'none' });
                }
                else {
                    $('#share-email-sender-address').parent('span').parent('div').prev('div.error').css({ display: 'block' });
                    _isvalid = false;
                }

                var _recipients = $('#share-email-recipient-address').val().split(",");

                if (_recipients.length > 0) {
                    for (var i = 0; i < _recipients.length; i++) {
                        if (!_emailregex.test(_recipients[i])) {
                            $('#share-email-recipient-address').parent('span').parent('div').prev('div.error').css({ display: 'block' });
                            _isvalid = false;
                        }
                    }

                    if (_isvalid) {
                        $('#share-email-recipient-address').parent('span').parent('div').prev('div.error').css({ display: 'none' });
                    }
                }
                else {
                    $('#share-email-recipient-address').parent('span').parent('div').prev('div.error').css({ display: 'block' });
                    _isvalid = false;
                }

                if (_isvalid) {
                    $.get("/TAF/default.aspx", {
                        SName: $('#share-email-name').val(),
                        RName: "My Friend",
                        REMail: ($('#share-email-cc-sender').is(':checked')) ? $('#share-email-sender-address').val() + "," + $('#share-email-recipient-address').val() : $('#share-email-recipient-address').val(),
                        EmailType: ui.shareemail.template,
                        an: ui.shareemail.title,
                        DYNA_URL: ui.shareemail.url
                    }, function (response) {

                        //response = $.parseJSON(response);

                        if (true) {
                            $('.page-email-overlay-success').css({ display: 'block' });
                            $('.page-email-overlay-form').css({ display: 'none' });
                        }
                        else {
                            $('.page-email-overlay-failure').css({ display: 'block' });
                            $('.page-email-overlay-form').css({ display: 'none' });
                        }

                        _emailoverlay.locked = false;
                    });
                }
                else {
                    _emailoverlay.locked = false;
                }
            }
        });

        this.reset = function () {

            $('.email-overlay-text', this).html(ui.labels.emailoverlaytext);
            $('.page-email-overlay-success,.page-email-overlay-failure').css({ display: 'none' });
            $('.page-email-overlay-form').css({ display: 'block' });
            $('input:text', this).val("");
            $('input:checkbox', this).attr('checked', '');
            $('div.error', this).css({ display: 'none' });
        }

        this.open = function () {

            ui.mask.show();
            this.reset();
            $(this).css({ top: (Math.round($(window).height() - $(this).height()) / 2) + $(window).scrollTop(), left: 305 });
        }

        this.close = function () {

            if ($('div.twtu-overlay').length == 0) {
                ui.mask.hide();
            }
            $(this).css({ top: 0, left: -2000 });
        }

        $('body').bind('ui:mask_hide', function () {

            $('[emailoverlay=emailoverlay]').css({ top: 0, left: -2000 });
        });
    });


	$('div.promo-content').mouseenter(function() {
		if($(this).parents('div.fca-carousel').length == 0) {
			$('img',this).css({top:-160});
		}
	});

	$('div.promo-content').mouseleave(function() {
		if($(this).parents('div.fca-carousel').length == 0) {
			$('img',this).css({top:0});
		}
	});

});

