﻿function getPageUrl(withQueryString) {
    if (withQueryString) {
        return window.location.href.toLowerCase();
    }
    
    return document.location.pathname.toLowerCase();
}

function scrollIfBelowFold(element, offset, options) {
    options = options || {};
    if (!element) { return; }

    var scrollOffsets = document.viewport.getScrollOffsets();
    var yFold = document.viewport.getHeight() + scrollOffsets.top;
    var yElem = element.cumulativeOffset()[1] + element.getHeight();

    if (offset) {
        yElem += offset;
    }

    if (options.reverse ? yElem < yFold : yElem > yFold) {
        new Effect.Tween(null, scrollOffsets.top, scrollOffsets.top + (yElem - yFold),
            {
                duration: 0.80,
                afterFinish: function() {
                    if (options && options.afterFinish) {
                        options.afterFinish();
                    }
                }
            },
            function(p) { scrollTo(scrollOffsets.left, p.round()) }
        );
    } else if (options && options.afterFinish) {
        options.afterFinish();
    }
}

function scrollToTestimonials() {
    var testimonials = $('testimonials');
    if (!testimonials) {
        location.href = '/Home.aspx#testimonials';
        return;
    }
    
    var body = testimonials.down('.testimonialsWrapper');
    
    new Effect.ScrollTo(testimonials, { 
        duration: 1.0,
        afterFinish: function() {
            new Effect.Highlight(body, { duration: 1.5, endcolor: '#F2F2F2' });
        }
    });
    
    return false;
}

function scrollToAppointment() {
    var appointmentArea = $('requestvisit');
    if (!appointmentArea) {
        location.href = '/Home.aspx#contact';
        return;
    }
    
    new Effect.ScrollTo(appointmentArea, { 
        duration: 1.0
    });
    
    return false;
}

Event.observe(window, 'load', function() {
    var links = $$('a[href^=#]:not([href=#])');
    for (var i=0, j=links.length; i<j; i++) {
        var element = links[i];
        element.observe('click', function(e) {
            new Effect.ScrollTo(this.hash.substr(1));
            Event.stop(e);
        }.bindAsEventListener(element))
    }
    
    if (getPageUrl(true).toLowerCase().indexOf('home.aspx#contact') >= 0) {
        var body = $('locations').down('.locationsBody .locations');
        var contactForm = $('contactForm');
        
        new Effect.Highlight(body, { duration: 1.0, endcolor: '#F2F2F2', delay: 0.5 });
        new Effect.Highlight(contactForm, { duration: 1.0, endcolor: '#F2F2F2', delay: 0.5 });
    }
})


