﻿var j = jQuery.noConflict();

var months = ",January,February,March,April,May,June,July,August,September,October,November,December".split(",")
var pageTotal

document.observe("dom:loaded", function() {
    init()
});

var curEventPage = 1
var imgPath = ""

function init() {

    initGallery()

    //initialize tabs
    var tabs = $(document.body).select('.tab').toArray()
    if (tabs.length) {
        tabs = tabs[0].select('li').toArray()
        for (var x = 0; x < tabs.length; x++) {
            if (!tabs[x].hasClassName("active")) {
                tabs[x].style.zIndex = 20 - x
            }
            tabs[x].observe('click', swapTabs)
        }
    }
    //initialize calendar	        

    if ($('calendars')) {
        now = new Date()

        var thisYear = parseInt(now.getFullYear())
        var thisMonth = parseInt(now.getMonth())

        var prevDate = Date.today().add({ months: 1 });
        var prevYear = parseInt(prevDate.getFullYear())
        var prevMonth = parseInt(prevDate.getMonth())

        var nextDate = Date.today().add({ months: 2 });
        var nextYear = parseInt(nextDate.getFullYear())
        var nextMonth = parseInt(nextDate.getMonth())

        drawCal($('cal2'), now, prevMonth, prevYear)
        drawCal($('cal1'), now, thisMonth, thisYear)
        drawCal($('cal3'), now, nextMonth, nextYear)
        showEvents(thisMonth + 1, thisYear)
        loadCalData()
    }




    var loc = document.location + ""
    /*if (loc.indexOf('localhost') > 0 && 4 == 4) {
        var setImages = confirm("Set image path to /milk?")
        if (setImages) {
            imgPath = "/Milk/"
            $(document.body).select('img').each(function(element) {
                if (element.src.indexOf('/milk') < 0) {
                    element.src = element.src.replace('localhost', 'localhost/milk')
                }
            })
        }
    }*/

    //vertical ad height adjustment
    if ($('PagePanelA')) {
        var leftHeight = $('mainRight').getHeight()
        $('PagePanelA').style.height = leftHeight + 'px'
    }


}

function doSearch(element) {
    var searchTerm = $(element).previous().value
    document.location = "Search.aspx?s=" + escape(searchTerm)
}

function initGallery() {

    if ($('thumbGallery')) {

        $('btnGalleryLeft').observe('click', scrollGallery)
        $('btnGalleryRight').observe('click', scrollGallery)

        if ($('thumbGallery').down('.activeThumb')) {
            //alert($('thumbGallery').down('.activeThumb').up())
            window.setTimeout(function() { showImg($('thumbGallery').down('.activeThumb').up()) }, 0)
        }
        else {
            showImg($('thumbGallery').down('img').up('a'))
        }

    }
}

function swapTabs(evt) {

    var element = Event.element(evt);
    if (element.tabName != 'li') {
        element = element.up()
    }
    var tabs = element.siblings()
    var myPos = -1
    if (tabs.length == 0) {
        return
    }
    var selTab = -1
    for (var x = 0; x < tabs.length; x++) {
        if (tabs[x].hasClassName('active') || tabs[x].removeClassName('activeInner')) {
            tabs[x].removeClassName('active')
            tabs[x].removeClassName('activeInner')
            tabs[x].style.zIndex = 20 - x
            if (x < tabs.length - 1) {
                tabs[x].down('img').src = "Images/tab/inactive/RightInner.png"
            }
            else {
                tabs[x].down('img').src = "Images/tab/inactive/Right.png"
            }
        }

    }

    element.style.zIndex = 50
    if (!element.next()) {
        element.down('img').src = "Images/tab/active/Right.png"

    }
    else {
        element.down('img').src = "Images/tab/active/RightInner.png"
    }
    if (element.previous()) {
        element.previous().down('img').src = "Images/tab/inactive/RightInnerB.png"
        element.addClassName('activeInner')
    }
    else {
        element.addClassName('active')
    }
    //flip associated panel
    var panels = element.up(2).select('.tabPanel').toArray()
    var tabs = element.up().select('li').toArray()
    for (var x = 0; x < panels.length; x++) {

        if (tabs[x].hasClassName('active') || tabs[x].hasClassName('activeInner')) {
            panels[x].show()
            panels[x].addClassName('active')
        }
        else {
            panels[x].hide()
            panels[x].removeClassName('active')
        }
    }

}

function scrollGallery(evt) {
    var element = Event.element(evt);
    var done = false
    if (element.id == 'btnGalleryRight') {
        var thumbs = $('thumbGallery').select('li').toArray()
        var hidden = $('thumbGallery').select('li.hidden').toArray()
        $('btnGalleryLeft').removeClassName('inactive')
        if (thumbs.length - hidden.length < 6) {
            $('btnGalleryRight').addClassName('inactive')
            return
        }
        $('thumbGallery').select('li').each(function(element) {
            if (!element.hasClassName('hidden') && !done) {
                element.addClassName('hidden')
                done = true
            }
        })
    }
    else {
        var showMe = $('thumbGallery').select('li.hidden').toArray()
        $('btnGalleryRight').removeClassName('inactive')
        if (!showMe.length) {
            $('btnGalleryLeft').addClassName('inactive')
            return;
        }
        showMe[showMe.length - 1].removeClassName('hidden')
    }
}

function imgPreload(element) {
    element = $(element)
    var newImg = element.next('.bigImg').innerHTML
    var tmp = new Image()
    tmp.src = imgPath + newImg
}

function showImg(element) {
    element = $(element)
    if (!$('bigPic')) {
        return true;
    }
    var newImg = element.next('.bigImg').innerHTML
    var newCopyright = element.next('.bigCopyright').innerHTML
    var newTitle = element.next('.bigTitle').innerHTML
    var newSub = element.next('.bigSubtitle').innerHTML
    var bigPic = $('bigPic').down('img')
    bigPic.replace("<img src='" + imgPath + newImg + "'>")
    $('bigPic').down('div').update(newCopyright)
    $('bigPic').down('h2').update(newTitle)
    $('bigPic').down('p').update(newSub)
    return false;
}

function drawCal(element, curDate, mo, yr) {

    //this populates the calendar grid
    //clear grid
    $(element).select('td').each(function(element) {
        if (element.innerHTML != '&gt;') {
            element.innerHTML = ""
        }
    })
    //fill in grid
    var thisCal = element.id + "_"
    var dy = 1
    //var mo = 1
    //var yr = 2010
    var wk = 1

    var startCal = new Date(yr, mo, 1)

    var days = Date.getDaysInMonth(yr, mo)

    //find start day of week
    if (startCal.is().sunday()) {
        dy = 1
    }
    if (startCal.is().monday()) {
        dy = 2
    }
    if (startCal.is().tuesday()) {
        dy = 3
    }
    if (startCal.is().wednesday()) {
        dy = 4
    }
    if (startCal.is().thursday()) {
        dy = 5
    }
    if (startCal.is().friday()) {
        dy = 6
    }
    if (startCal.is().saturday()) {
        dy = 7
    }
    var curYear = parseInt(curDate.getFullYear())
    var curMonth = parseInt(curDate.getMonth())
    var curDay = parseInt(curDate.getDate())

    //add label to calendar
    $(thisCal + "label").innerHTML = "<div class='calTitle'>" + months[mo + 1] + " " + yr + "</div>"

    //$(thisCal + "label").observe('click',clickDate)
    $('calendars').select('td').each(function(element) {
        element.observe('click', clickDate)
    })


    $(element).addClassName("calReady")
    $(element).addClassName("calR_" + parseInt(mo + 1) + "_" + yr)
    for (var x = 1; x < days + 1; x++) {
        if (x == curDay && yr == curYear && mo == curMonth) {
            //highlight selected day
            $(thisCal + 'w' + wk + "_d" + dy).innerHTML = "<div class='calDate today'>" + x + "</div>"
        }
        else {
            $(thisCal + 'w' + wk + "_d" + dy).innerHTML = "<div class='calDate'>" + x + "</div>"
        }
        dy++
        if (dy == 8) {
            dy = 1
            wk++
        }
    }
}


function loadCalData() {
    //update calendars based on page data


    var curDate
    var curYear
    var curMonth
    var curDay
    var t = $('calendars').select('.eventDate').toArray()


    //search event listings for dates
    $('calendars').select('.eventDate').each(function(element) {
        curDate = Date.parse(element.innerHTML);
        curYear = parseInt(curDate.getFullYear())
        curMonth = parseInt(curDate.getMonth() + 1)
        curDay = parseInt(curDate.getDate())

        //does a calendar exist for this date?       
        if ($('calendars').select(".calR_" + curMonth + "_" + curYear)) {
            var tmp = $('calendars').select(".calR_" + curMonth + "_" + curYear).toArray()
            var thisCal = tmp[0]
            thisCal.select('.calDate').each(function(element) {
                //is the event on this day?
                if (parseInt(element.innerHTML) == curDay) {
                    element.up().addClassName('active')
                }
            })
        }
    })
}

function clickDate(evt) {
    var element = Event.element(evt);

    var parentCal = element.up('.calReady')

    var parentClass = parentCal.classNames().toArray()
    for (var x = 0; x < parentClass.length; x++) {
        if (parentClass[x].indexOf('calR') > -1) {
            calStart = parentClass[x].split("_")
        }
    }
    var calMonth = calStart[1]
    var calYear = calStart[2]
    var calDay = element.innerHTML

    showEvents(calMonth, calYear)
}




function showEvents(mo, yr) {
    //hide events not this month and > 6
    var curDate
    var curYear
    var curMonth
    var curDay

    now = new Date()
    $('eventTitle').update(months[mo] + " " + yr)
    var thisYear = yr
    var thisMonth = mo
    $('eventControls').update()
    var events = $('calendars').select('.eventListing').each(function(element) {
        curDate = Date.parse(element.down('.eventDate').innerHTML);
        curYear = parseInt(curDate.getFullYear())
        curMonth = parseInt(curDate.getMonth() + 1)
        // $('eventControls').update($('eventControls').innerHTML + "<br />" + curMonth + "/" + curYear + ", " + thisMonth + "/" + thisYear)
        if (curMonth + "/" + curYear != thisMonth + "/" + thisYear) {
            element.removeClassName('eventActive')
            element.hide()
        }
        else {
            element.addClassName('eventActive')
            element.removeClassName('eventHidden')
            element.show()
        }
    })

    var events = $('calendars').select('.eventActive').toArray()

    for (var x = 6; x < events.length; x++) {
        events[x].addClassName('eventHidden')
    }

    var pages = parseInt(events.length / 6)
    pageCount = pages
    var pagecontrols = ""
    //alert(events.length+", " +pages)
    if (events.length > 6) {
        for (var x = 0; x <= pages; x++) {
            pagecontrols = pagecontrols + "<a href='javascript:// page navigation' onclick='eventPage(" + (x + 1) + ")'>" + (x + 1) + "</a>&nbsp;&nbsp;"
        }
        pagecontrols = pagecontrols + "<a id='eventNext' href='javascript:// page navigation' onclick='eventNext()'>NEXT</a>&nbsp;&nbsp;"
    }
    $('eventControls').update(pagecontrols)
}

function eventNext() {
    eventPage(curEventPage + 1)
}

function eventPrevious() {
    eventPage(curEventPage - 1)
}

function eventPage(page) {
    curEventPage = page
    var events = $('calendars').select('.eventActive').toArray()
    var startPos = (page * 6) - 6
    var endPos = page * 6

    for (var x = 0; x < events.length; x++) {
        if (x >= startPos && x < endPos) {
            events[x].removeClassName('eventHidden')
        }
        else {
            events[x].addClassName('eventHidden')
        }
    }

    if (page == pageCount + 1) {
        $('eventNext').addClassName('hidden')
    }
    else {
        $('eventNext').removeClassName('hidden')
    }

}

function focusViewer() {
    window.scrollTo(0, 0)
}

// jquery slider for the bottom
function slideScroll(ele, dir) {
    var moveTime = 15000;

    var elementWidth = 0;
    jQuery(ele).find('ul li').each(function() {
        elementWidth += jQuery(this).width();
    });

    var target = jQuery(ele).find('ul')
    var moveWidth = elementWidth / 2 * dir + 'px';


    //move one group
    jQuery(target).animate({
        marginLeft: '+=' + moveWidth
    }, moveTime, 'linear', function() {
        jQuery(target).css('margin-left', 0);
        setTimeout(function() { slideScroll(ele, dir); }, 1);
    });

}



// jquery slideshow image rotator for homepage

var rotator_selectedIndex;

function rotator_swapNthChild(n) {
    var visibleItem = jQuery('.SlideShow .Slides .Slide:visible');
    var nextItem = jQuery('.SlideShow .Slides .Slide:nth-child(' + n + ')');
    jQuery('.SlideShow').fadeOut("slow", function() {
        jQuery('.RotatePager ul li a').removeClass('selected');
        jQuery('.RotatePager ul li:nth-child(' + (n) + ') a').addClass('selected');
        jQuery('.SlideShow .Slides .Slide').hide();
        jQuery(nextItem).show();
        jQuery('.SlideShow').fadeIn("slow");

        rotator_selectedIndex = n;
    });

}



function rotator_Rotate(timeout) {
    if (rotator_selectedIndex == null) {
        rotator_selectedIndex = 1;
    }

    var visibleItem = jQuery('.SlideShow .Slides .Slide:visible');
    var nextItem;

    if (jQuery(visibleItem).next().size() > 0) {
        nextItem = $(visibleItem).next();
        rotator_selectedIndex = rotator_selectedIndex + 1;
    } else {
    nextItem = jQuery('.SlideShow .Slides .Slide:first');
        rotator_selectedIndex = 1;
    }
    jQuery('.SlideShow').fadeOut("slow", function() {

        // set pager (only if visible)
        jQuery('.RotatePager ul li a').removeClass('selected');
        jQuery('.RotatePager ul li:nth-child(' + (rotator_selectedIndex) + ') a').addClass('selected');
        //
        jQuery('.SlideShow .Slides .Slide').hide();
        jQuery(nextItem).show();
        jQuery('.SlideShow').fadeIn("slow");
        setTimeout('rotator_Rotate(' + timeout + ');', timeout);
    });

}
