// Public Vars
var branchArr;
var branchSpec;
var currentLocation;

window.addEvent('domready', function () {

    //$(document.body).addClass('js');

    if ($('quote-container')) {
        var htmlSlider = new HTMLSlider('quote-container', 'quote',
		{
		    autoSlideEnabled: false,
		    randomStart: true,
		    paginationContainerId: 'pagination-container'
		});
    }

    // REGION MAP
    if ($('rollover-map')) {
        var labelElem = new Element('p',
        {
            'class': 'map-label',
            'html': 'test',
            'styles':
            {
                'position': 'absolute',
                'display': 'none',
                'top': '0px',
                'left': '0px'
            }
        });

        labelElem.inject($('rollover-map'));

        $('rollover-map').getElements('a').each(function (el, i) {

            var textElem = el.getElements('strong')[0];

            el.addEvents({
                'mouseenter': function (evt) {

                    var textValue = textElem.get('html');
                    labelElem.set('html', textValue);

                    var pos = getRelativeMousePos(evt);
                    pos.x += 20;
                    pos.y -= 8;

                    labelElem.setStyles(
                    {
                        'display': 'inline',
                        'top': String(pos.y + 'px'),
                        'left': String(pos.x + 'px')
                    });
                },
                'mouseleave': function (evt) {
                    labelElem.setStyle('display', 'none');
                },
                'mousemove': function (evt) {
                    var pos = getRelativeMousePos(evt);
                    pos.x += 20;
                    pos.y -= 8;

                    labelElem.setStyles(
                    {
                        'top': String(pos.y + 'px'),
                        'left': String(pos.x + 'px')
                    });
                }
            });
        });
    }

    // BOOGLE MAP
    if ($('GetDirectionsLink')) {
        $('GetDirectionsLink').show();
    }

    if ($('map_canvas')) {
        var boogleMap = new GoogleMap('map_canvas',
	    {
	        defaultZoom: 8,
	        mapTypeControl:
		        {
		            enabled: true
		        },
	        streetViewControl:
		        {
		            enabled: true
		        },
	        scaleControl:
			    {
			        enabled: false
			    },
	        clustering:
		        {
		            enabled: true,
		            range: 20,
		            icon: '/_common/img/maps/cluster-icon.png'
		        }
	    });

        if (branchArr) {

            boogleMap.placeMarkers(branchArr);

            if ($$('div.branch-links')[0]) {

                var branchLinks = $$('div.branch-links')[0].getElements('.red a');

                branchLinks.each(function (el, i) {
                    el.addEvent('click', function (evt) {
                        evt.stop();

                        window.location.href = "#region-name";

                        boogleMap.zoomToMarker(branchArr[i].name, true);

                    } .bind(this));
                } .bind(this));
            }
        }

        if (currentLocation) {
            boogleMap.placeGeocodeMarker(currentLocation, 'Current Location', true,
            {
                icon: '/_common/img/maps/marker_currentLocation.png'
            });
        }

        if (branchSpec) {
            boogleMap.placeMarker(branchSpec.latLng, branchSpec.name, false, branchSpec.options);
            setTimeout(function () {
                boogleMap.zoomToMarker(branchSpec.name, true, 16);
            }, 1000)
        }
    }


    // PANEL SLIDER
    if ($('slider-panels')) {
        var panelSlider = new PanelSlider('slider-panels', 'panel',
	    {
	        expandSize: 510,
	        contractSize: 150,
	        resetSize: 275,
	        transitionSpeed: 500,
	        contentOptions:
		    {
		        contentElem: 'div.panel-list-container'
		    }
	    });
    }

    if ($$('.panel')[0]) {
        var panelEqualizer = new Equalizer('panel');
    }


    // INPUT SELECTION

    if ($$('input.searchterms')[0]) {
        $$('input.searchterms').addEvent('click', function (event) {
            this.value = "";
        });
    }
    if ($$('input.yourname')[0]) {
        $$('input.yourname').addEvent('click', function (event) {
            if (this.value == "Your name…") {
                this.value = "";
            }
        });
    }

    if ($$('input.youremail')[0]) {
        $$('input.youremail').addEvent('click', function (event) {
            if (this.value == "Your Email…") {
                this.value = "";
            }
        });
    }

    // ROW STRIPING 
    if ($$('table')) {
        var pageTable = $$('tbody');
        pageTable.each(function (el) {
            var tableTrs = el.getChildren('tr');
            tableTrs.each(function (el, i) {
                if (i % 2) {
                    el.setStyles({
                        'background-color': '#E6E7E9'
                    });
                };
            });
        });
    };



    // FOOTER EXTENDER 
    function footerSizeDetect() {
        var wrapperSize = $('background').getSize();
        var wrapperHeight = wrapperSize.y;
        var footerSize = $('footer-wrapper').getSize();
        var footerHeight = footerSize.y;
        var viewportwidth;
        var viewportheight;
        // FIREFOX 
        if (typeof window.innerWidth != 'undefined') {
            viewportwidth = window.innerWidth,
			viewportheight = window.innerHeight
        }
        // IE6 standards compliant mode 
        else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) {
            viewportwidth = document.documentElement.clientWidth,
			viewportheight = document.documentElement.clientHeight
        }
        // older versions of IE
        else {
            viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
			viewportheight = document.getElementsByTagName('body')[0].clientHeight
        };
        var totalHeight = wrapperHeight + footerHeight;
        var footerWrap = $('footer-wrapper');
        if (viewportheight > totalHeight) {
            var paddingAmount = viewportheight - totalHeight;
            footerWrap.setStyle('padding-bottom', paddingAmount);
        } else { footerWrap.setStyle('padding-bottom', 0); };
    };
    footerSizeDetect();
    window.onresize = function () {
        footerSizeDetect();
    };


    // HOMEPAGE BANNER 
    if ($('banner')) {
        // VARIABLES 
        var bannerWrapper = $('banner');
        var panelWrapper = $('banner-panels');
        var autoMethod = true;
        var initialPanelsArray = panelWrapper.getChildren('div.main-panel');


        // FADE FUNCTION 
        function fadeOut() {
            if (autoMethod == true) {
                var currentPanel = $('current');
                var nextPanel = currentPanel.getNext('div.main-panel');

                if (nextPanel) {

                } else {
                    nextPanel = initialPanelsArray[0]
                };
                var nextPosition = String(nextPanel.get('class'));
                var positionString = nextPosition.replace('main-panel ', '');
                var panelFadeIn = new Fx.Morph(nextPanel, { duration: '2000' });
                panelFadeIn.start({
                    'opacity': '1'
                }).addEvent('complete', function () {
                    var navArray = $$('a.banner-nav');
                    navArray.each(function (el) {
                        if (el.hasClass(positionString)) {
                            el.tween('opacity', '1');
                        } else {
                            el.tween('opacity', '0.5');
                        }
                    });
                    currentPanel.set('id', '');
                    nextPanel.set('id', 'current');
                    //currentTitle.fade('out');
                    currentPanel.tween('opacity', '0');
                    //nextTitle.fade('in');
                    repeaterSlide();
                });
            } else {
                autoMethod = true;
                repeaterSlide.delay(5000);
            };
        };

        // INITIAL BANNER SET UP 
        initialPanelsArray.each(function (el, index) {
            var arrayPosition = 'panel' + index;
            el.addClass(arrayPosition);
            el.fade('hide');
            var panelFadeOut = new Fx.Morph(el, { duration: '500' });
            var bannerNav = new Element('a', {
                'class': 'banner-nav',
                'href': '#',
                'html': '<img src="/_common/img/banner-nav-icon.png" />',
                'styles': { 'opacity': '0.5' }
            });
            bannerNav.addClass(arrayPosition);
            bannerNav.inject(panelWrapper);
            var navArray = $$('a.banner-nav');
            navArray.each(function (el, index) {

                var navClass = el.get('class');
                var classString = navClass.replace('banner-nav ', '');
                var linkedPanelString = 'div.' + classString;
                var linkedPanel = $$(linkedPanelString);
                var linkedPanel = linkedPanel[0];
                var otherPanels = linkedPanel.getSiblings('div.main-panel');
                var otherNav = el.getSiblings('a.banner-nav')
                el.addEvent(
	 				'click', function (e) {
	 				    e.stop();
	 				    autoMethod = false;
	 				    el.setStyle('opacity', '1');
	 				    linkedPanel.set('id', 'current')
	 				    otherNav.setStyle('opacity', '0.5');
	 				    otherPanels.each(function (item) {
	 				        item.tween('opacity', '0');
	 				        item.set('id', '')
	 				    });
	 				    linkedPanel.tween('opacity', '1');
	 				}
 				);
            });
        });

        var firstPanel = initialPanelsArray[0];
        var firstNav = $$('a.banner-nav')[0];
        firstPanel.fade('in').set('id', 'current');
        firstNav.tween('opacity', '1');

        // REPEAT THE FADE FUNCTION 
        function repeaterSlide() {
            if (autoMethod == true) {
                fadeOut.delay(5000);
            };
        };

        // FIRST CALL OF THE FADE 
        fadeOut.delay(4000);

        // BANNER ROUNDED CORNER 
        var bannerCorner = new Element('img', {
            'src': '/_common/img/banner-corner.png',
            'styles': {
                'position': 'absolute',
                'top': '2px',
                'left': '0px',
                'z-index': '1000'
            }
        });
        bannerCorner.inject(bannerWrapper);

    };

    // NAV HEIGHTS
    var navItems = $$('div#header ul li');
    var maxHeight = 0;
    if (navItems) {
        navItems.each(function (item) { maxHeight = Math.max(maxHeight, item.getSize().y - item.getStyle('padding-top').toInt() - item.getStyle('padding-bottom').toInt()); });

        navItems.each(function (item) {
            var target = item.getElements('a')[0];
            if (target) target.setStyle('margin-top', String(Number((maxHeight - target.getSize().y) / 2) + 'px'));
        });

        navItems.setStyle('min-height', maxHeight);

        var selectedItem = $$('div#header ul li.selected')[0]
        if (selectedItem) {
            selectedItem.setStyles({
                'padding-bottom': '10px',
                'padding-top': '14px',
                'margin-top': '-4px'
            });
        }
    };

    //Print button
    var printDiv = $$('.print')[0];
    if (printDiv) {
        new Element('a', {
            'id': 'print',
            'href': '#',
            html: 'Print',
            'events': {
                'click': function (e) {
                    new Event(e).stop();
                    window.print();
                }
            }
        }).inject(printDiv, 'top');
    }
    
    // after stuff
  	injectArrows('cta');
  	injectArrows('ctaBanner');
   
});

function getRelativeMousePos(evt) {
    var containerPos = $('rollover-map').getPosition($(document));
    var mousePos = { x: evt.page.x - containerPos.x, y: evt.page.y - containerPos.y };

    return mousePos;
}

function injectArrows(className) {
	
    var ie6 = navigator.userAgent.toLowerCase().indexOf('msie 6') > -1;
    var ie7 = navigator.userAgent.toLowerCase().indexOf('msie 7') > -1;

    if(ie6 || ie7)
    {
    	if($$(String('.' + className))[0])
    	{
    		$$(String('.' + className)).each(function(parent, i) {
    			parent.getElements('a').each(function (el, j)
    			{
    				var span = new Element('span',
					{
						'class' : 'arrow'
					});
    				
    				span.inject(el);
    			});
    		});	
    	}
    }	
}
