/**
 * TODO:
 * - Build more complex transitions
 */
this.homepageEvents = function(){
    if($('body').attr('id') === 'Ls-')
    {
        var $allEvents = $("#event-calendar .vevent");
        var $filters = $("#event-calendar-filters a");
        var $pagesList = $("<ul class='pages'>").prependTo("#event-calendar .footer");

        $allEvents.filter(":gt(5)").hide();

        $filters.click(function(e){
            
            e.preventDefault();

            var $this = $(e.target);
            var category = $this.data("category");
            var $theseEvents = (category !== "all") ? $allEvents.filter("."+category) : $allEvents;
            var theseEventsTotal = $theseEvents.length;

            // Highlight current filter
            $filters.removeClass("here");
            $this.addClass("here");

            // Reset all events
            $allEvents.hide();
            $pagesList.hide();

            // Show the first five
            $theseEvents.filter(":lt(6)").show();
            

            // pagination
            if(theseEventsTotal > 6){
                var tmp = [],
                    totalPages = Math.ceil(theseEventsTotal/6);
                
                for(var i=1; i <= totalPages; i++){
                    tmp.push("<li><a data-category='"+category+"' data-page='"+i+"'>"+i+"</a></li>");
                }
                
                $pagesList.html($(tmp.join("")));
                $pagesList.find("a:eq(0)").addClass("here");
                $pagesList.find("a").click(function(e){
                    e.preventDefault();
                    
                    var $that = $(e.currentTarget);
                    var $thatCategory = $that.data("category");
                    var $thatPage = $that.data("page");

                    $pagesList.find("a").removeClass("here");
                    $that.addClass("here");
                    $theseEvents.hide().slice(($thatPage-1)*6,$thatPage*6).show();
                })
                $pagesList.show();
            }

        })

        $filters.filter(".here").trigger("click");

    }
}

this.homepage = function(){
    var maxH = 0;
    
    $('#Ls- .sameHeight').each(function(){
        maxH = $(this).height() > maxH ? $(this).height() : maxH;
    }).css({ height: maxH - 10 });
}

this.homepageHero = function(){
    var body,
        slider,
        hero,
        slides,
        bodyWidth;

    if ((body = $('body')).attr('id') !== 'Ls-') {
        return false;
    }

    // Init
    hero = $("#hero");
    slides = hero.find(".slide");
    // top = hero.offset().top - 3;
    // helper = $("<div id='hero-helper' class='hero divider divider-top'>");
    slider = hero.find(".slider");

    function updateWidths() {
        var sliderLeft;
        bodyWidth = Math.max(body.outerWidth(), 996);
        slides.last().css("left", bodyWidth);
        slides.width(bodyWidth);
        if ((sliderLeft = slider.offset().left) < 0) {
            slider.css("left", -bodyWidth);
        }
    }

    // Setup
    updateWidths();
    slides
        .append(function (index, html) {
            return '<a class="advance-slide" href="#">' + $(this).data("next-label") + "</a>";
        })
        .css({
            position: "absolute",
            width: bodyWidth
        })
        // .appendTo(slider);
    
    slider
        .css("width", bodyWidth * 2);
    //     .appendTo(helper);

    slides.first()
        .css({
            left: 0
        })
        .find(".advance-slide").click(function (e) {
            e.preventDefault();
            slider.animate({
                left: -bodyWidth
            }, {
                duration: 600,
                easing: "easeInOutExpo"
            });
        });
    
    slides.last()
        .css({
            display: "block",
            left: bodyWidth
        })
        .find(".advance-slide").click(function (e) {
            e.preventDefault();
            slider.animate({
                left: 0
            }, {
                duration: 600,
                easing: "easeInOutExpo"
            });
        });

    // helper
    //     .css({
    //         "top": top,
    //         "z-index": 1
    //     }).prependTo("body");

    $(window).resize(updateWidths);

    // $(window).load(updateTop);
}




// Newsletter functions

    function SubValidationJoin() {
        var email = $.trim($("#newsletter-signup input.email").val());
        if (isValidEmailAddress(email)) {
            $('#newsletter-signup .emailcheck').show().removeClass('fail').addClass('pass');
        } else {
            $('#newsletter-signup .emailcheck').show().removeClass('pass').addClass('fail');
        }

        var first = $.trim($("#newsletter-signup input.first").val());
        if (first == "" || first == "First Name") {
            $('#newsletter-signup .firstcheck').show().removeClass('pass').addClass('fail');
        } else {
            $('#newsletter-signup .firstcheck').show().removeClass('fail').addClass('pass');
        }

        var last = $.trim($("#newsletter-signup input.last").val());
        if (last == "" || last == "Last Name") {
            $('#newsletter-signup .lastcheck').show().removeClass('pass').addClass('fail');
        } else {
            $('#newsletter-signup .lastcheck').show().removeClass('fail').addClass('pass');
        }

        if ($('#newsletter-signup .firstcheck').is('.pass') && $('#newsletter-signup .lastcheck').is('.pass') && $('#newsletter-signup .emailcheck').is('.pass')){
            var First = $('#newsletter-signup input.first').val();
            var Last = $('#newsletter-signup input.last').val();
            var Email = $('#newsletter-signup input.email').val();

            if (First == "First Name" || Last == "Last Name" || Email == "Email Address") {
                First = "NA";
                Last = "NA";
                Email = "NA";
            }
            
            InsertDataJoin(First, Last, Email);
        }
        else {
            //alert('Check Class not set');
        }
    }

    function InsertDataJoin(fvar, lvar, evar) {
        $.ajax({   
            type: "POST",   
            url: "/ModalService.asmx/InsertData",   
            data: "{'fn': '" + fvar + "', 'ln': '" + lvar + "', 'em': '" + evar + "'}",   
            contentType: "application/json; charset=utf-8",   
            dataType: "json",   
            success: function(json) {
                $("#newsletter-signup").html("<h3><strong>THANK YOU FOR JOINING</strong> LIVE<strong>STRONG.</strong></h3>");
            }
        }); 
    }

    function isValidEmailAddress(emailAddress) {
        var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
        return pattern.test(emailAddress);
    }

    
	$(document).ready(function() {

         // Newsletter setup
        $("#newsletter-signup").removeClass("hidden");
        $(".firstcheck,.lastcheck,.emailcheck").hide();
        // hit ENTER to submit form
        $('#newsletter-signup').keypress(function(e) {
            if (e.keyCode == 13) {
                SubValidationJoin();
            }
        });

        // Hero help
        homepageHero();
        homepage();
        homepageEvents();
    });
