
$(document).ready(function(){  
    
    // append news archive links to left hand nav
    if ($('#news_archive_links').html()) {
       $("#nav-sub li.sub-level-0:contains('News ')").addClass('here');
       $("#nav-sub li.here").append($('#news_archive_links'));
    }
    
    // append staff post archive links to the left hand nav
    if ($('#staff_post_archive_links').html()) {
       $("#nav-sub li.sub-level-1:contains('Staff ')").addClass('here');
       $("#nav-sub li.sub-level-1.here").after($('#staff_post_archive_links').html());
       $('#staff_post_archive_links').remove();
    }
    
    var swap_val = [];
    $(".swap").each(function(i) {
        swap_val[i] = $(this).val();
        $(this).focusin(function() {
            if ($(this).val() == swap_val[i]) {
                $(this).val("");
            }
            return false;
        }).focusout(function() {
            if ($.trim($(this).val()) == "") {
                $(this).val(swap_val[i]);
            }
            return false;
        });
    });
    
    $('#newsletter_signup_sidebar label, .uppernav_search label, #page_search_form label').perfectForm();
    
    $('a.map_show_grant').click(function(){
        var id = $(this).attr('rel');
        var href = $(this).attr('href');
        
        // Remove all HTML from all possible instances of this
        $('div.map_grant_single').html('');
        
        $('div.map_grant_'+id).load(href);
        return false;
    });
    
    $('a.popup, a[rel="_blank"], a[href$=".pdf"]').popUp({
        width: '960', 
        height: '700',
        scrollbars: 'yes',
        resizeable: 'yes',
        statusbar: 'yes',
        menubar: 'yes',
        toolbar: 'yes'
    });
    
    $('#search_search').keyup(function(){
        var value = $(this).val();
        value = value.replace(/([^a-z 0-9])/g, '');
        $(this).val(value);
    });
    
    $('#entryform').submit(function(){
        if($(this).valid()){
            $(this).find('input.submit').attr('disabled', 'disabled');
        }
    });
    
    $('ul.pagination').each(function(){
        var show = 4;
        var self = $(this);
        var ignore = '.beginning, .previous, .next, .end';
        var children = self.children().not(ignore);
        var children_count = children.length;
        var start_elip_inserted = false;
        var end_elip_inserted = false;
        var elip = '<li class="elip">...</li>';
        var current = false;
        
        if(children_count > show)
        {
            if(self.find('li.here').length == 1)
            {
                children.not(ignore).each(function(i){
                    if($(this).hasClass('here')) {
                        // find out which link is currently active to find our starting point
                        current = i;
                    }
                });
                children.not(ignore).each(function(i){
                    
                    if(i <= current - show && i > 1)
                    {
                        $(this).hide();

                        if(start_elip_inserted == false)
                        {
                            $(this).after(elip);
                            start_elip_inserted = true;
                        }
                    }
                    
                    if(i >= current + show && i < children_count - 2)
                    {
                        $(this).hide();

                        if(end_elip_inserted == false)
                        {
                            $(this).after(elip);
                            end_elip_inserted = true;
                        }
                    }
                });
            }
            else
            {
                children.each(function(i){
                    if(i >= keep && i <= children_count - keep)
                    {
                        $(this).hide();
                    
                        if(elip_inserted == false)
                        {
                            $(this).after(elip);
                            elip_inserted = true;
                        }
                    }
                });
            }
        }
    });
    
});

/**
 * jQuery lightBox plugin
 * This jQuery plugin was inspired and based on Lightbox 2 by Lokesh Dhakar (http://www.huddletogether.com/projects/lightbox2/)
 * and adapted to me for use like a plugin from jQuery.
 * @name jquery-lightbox-0.5.js
 * @author Leandro Vieira Pinho - http://leandrovieira.com
 * @version 0.5
 * @date April 11, 2008
 * @category jQuery plugin
 * @copyright (c) 2008 Leandro Vieira Pinho (leandrovieira.com)
 * @license CC Attribution-No Derivative Works 2.5 Brazil - http://creativecommons.org/licenses/by-nd/2.5/br/deed.en_US
 * @example Visit http://leandrovieira.com/projects/jquery/lightbox/ for more informations about this jQuery plugin
 */
(function($){$.fn.lightBox=function(settings){settings=jQuery.extend({overlayBgColor:'#000',overlayOpacity:0.8,fixedNavigation:false,imageLoading:'images/lightbox/lightbox-ico-loading.gif',imageBtnPrev:'images/lightbox/lightbox-btn-prev.gif',imageBtnNext:'images/lightbox/lightbox-btn-next.gif',imageBtnClose:'images/lightbox/lightbox-btn-close.gif',imageBlank:'images/lightbox/lightbox-blank.gif',containerBorderSize:10,containerResizeSpeed:400,txtImage:'Image',txtOf:'of',keyToClose:'c',keyToPrev:'p',keyToNext:'n',imageArray:[],activeImage:0},settings);var jQueryMatchedObj=this;function _initialize(){_start(this,jQueryMatchedObj);return false;}
function _start(objClicked,jQueryMatchedObj){$('embed, object, select').css({'visibility':'hidden'});_set_interface();settings.imageArray.length=0;settings.activeImage=0;if(jQueryMatchedObj.length==1){settings.imageArray.push(new Array(objClicked.getAttribute('href'),objClicked.getAttribute('title')));}else{for(var i=0;i<jQueryMatchedObj.length;i++){settings.imageArray.push(new Array(jQueryMatchedObj[i].getAttribute('href'),jQueryMatchedObj[i].getAttribute('title')));}}
while(settings.imageArray[settings.activeImage][0]!=objClicked.getAttribute('href')){settings.activeImage++;}
_set_image_to_view();}
function _set_interface(){$('body').append('<div id="jquery-overlay"></div><div id="jquery-lightbox"><div id="lightbox-container-image-box"><div id="lightbox-container-image"><img id="lightbox-image"><div style="" id="lightbox-nav"><a href="#" id="lightbox-nav-btnPrev"></a><a href="#" id="lightbox-nav-btnNext"></a></div><div id="lightbox-loading"><a href="#" id="lightbox-loading-link"><img src="'+settings.imageLoading+'"></a></div></div></div><div id="lightbox-container-image-data-box"><div id="lightbox-container-image-data"><div id="lightbox-image-details"><span id="lightbox-image-details-caption"></span><span id="lightbox-image-details-currentNumber"></span></div><div id="lightbox-secNav"><a href="#" id="lightbox-secNav-btnClose"><img src="'+settings.imageBtnClose+'"></a></div></div></div></div>');var arrPageSizes=___getPageSize();$('#jquery-overlay').css({backgroundColor:settings.overlayBgColor,opacity:settings.overlayOpacity,width:arrPageSizes[0],height:arrPageSizes[1]}).fadeIn();var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]}).show();$('#jquery-overlay,#jquery-lightbox').click(function(){_finish();});$('#lightbox-loading-link,#lightbox-secNav-btnClose').click(function(){_finish();return false;});$(window).resize(function(){var arrPageSizes=___getPageSize();$('#jquery-overlay').css({width:arrPageSizes[0],height:arrPageSizes[1]});var arrPageScroll=___getPageScroll();$('#jquery-lightbox').css({top:arrPageScroll[1]+(arrPageSizes[3]/10),left:arrPageScroll[0]});});}
function _set_image_to_view(){$('#lightbox-loading').show();if(settings.fixedNavigation){$('#lightbox-image,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}else{$('#lightbox-image,#lightbox-nav,#lightbox-nav-btnPrev,#lightbox-nav-btnNext,#lightbox-container-image-data-box,#lightbox-image-details-currentNumber').hide();}
var objImagePreloader=new Image();objImagePreloader.onload=function(){$('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);_resize_container_image_box(objImagePreloader.width,objImagePreloader.height);objImagePreloader.onload=function(){};};objImagePreloader.src=settings.imageArray[settings.activeImage][0];};function _resize_container_image_box(intImageWidth,intImageHeight){var intCurrentWidth=$('#lightbox-container-image-box').width();var intCurrentHeight=$('#lightbox-container-image-box').height();var intWidth=(intImageWidth+(settings.containerBorderSize*2));var intHeight=(intImageHeight+(settings.containerBorderSize*2));var intDiffW=intCurrentWidth-intWidth;var intDiffH=intCurrentHeight-intHeight;$('#lightbox-container-image-box').animate({width:intWidth,height:intHeight},settings.containerResizeSpeed,function(){_show_image();});if((intDiffW==0)&&(intDiffH==0)){if($.browser.msie){___pause(250);}else{___pause(100);}}
$('#lightbox-container-image-data-box').css({width:intImageWidth});$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({height:intImageHeight+(settings.containerBorderSize*2)});};function _show_image(){$('#lightbox-loading').hide();$('#lightbox-image').fadeIn(function(){_show_image_data();_set_navigation();});_preload_neighbor_images();};function _show_image_data(){$('#lightbox-container-image-data-box').slideDown('fast');$('#lightbox-image-details-caption').hide();if(settings.imageArray[settings.activeImage][1]){$('#lightbox-image-details-caption').html(settings.imageArray[settings.activeImage][1]).show();}
if(settings.imageArray.length>1){$('#lightbox-image-details-currentNumber').html(settings.txtImage+' '+(settings.activeImage+1)+' '+settings.txtOf+' '+settings.imageArray.length).show();}}
function _set_navigation(){$('#lightbox-nav').show();$('#lightbox-nav-btnPrev,#lightbox-nav-btnNext').css({'background':'transparent url('+settings.imageBlank+') no-repeat'});if(settings.activeImage!=0){if(settings.fixedNavigation){$('#lightbox-nav-btnPrev').css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnPrev').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnPrev+') left 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage-1;_set_image_to_view();return false;});}}
if(settings.activeImage!=(settings.imageArray.length-1)){if(settings.fixedNavigation){$('#lightbox-nav-btnNext').css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'}).unbind().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}else{$('#lightbox-nav-btnNext').unbind().hover(function(){$(this).css({'background':'url('+settings.imageBtnNext+') right 15% no-repeat'});},function(){$(this).css({'background':'transparent url('+settings.imageBlank+') no-repeat'});}).show().bind('click',function(){settings.activeImage=settings.activeImage+1;_set_image_to_view();return false;});}}
_enable_keyboard_navigation();}
function _enable_keyboard_navigation(){$(document).keydown(function(objEvent){_keyboard_action(objEvent);});}
function _disable_keyboard_navigation(){$(document).unbind();}
function _keyboard_action(objEvent){if(objEvent==null){keycode=event.keyCode;escapeKey=27;}else{keycode=objEvent.keyCode;escapeKey=objEvent.DOM_VK_ESCAPE;}
key=String.fromCharCode(keycode).toLowerCase();if((key==settings.keyToClose)||(key=='x')||(keycode==escapeKey)){_finish();}
if((key==settings.keyToPrev)||(keycode==37)){if(settings.activeImage!=0){settings.activeImage=settings.activeImage-1;_set_image_to_view();_disable_keyboard_navigation();}}
if((key==settings.keyToNext)||(keycode==39)){if(settings.activeImage!=(settings.imageArray.length-1)){settings.activeImage=settings.activeImage+1;_set_image_to_view();_disable_keyboard_navigation();}}}
function _preload_neighbor_images(){if((settings.imageArray.length-1)>settings.activeImage){objNext=new Image();objNext.src=settings.imageArray[settings.activeImage+1][0];}
if(settings.activeImage>0){objPrev=new Image();objPrev.src=settings.imageArray[settings.activeImage-1][0];}}
function _finish(){$('#jquery-lightbox').remove();$('#jquery-overlay').fadeOut(function(){$('#jquery-overlay').remove();});$('embed, object, select').css({'visibility':'visible'});}
function ___getPageSize(){var xScroll,yScroll;if(window.innerHeight&&window.scrollMaxY){xScroll=window.innerWidth+window.scrollMaxX;yScroll=window.innerHeight+window.scrollMaxY;}else if(document.body.scrollHeight>document.body.offsetHeight){xScroll=document.body.scrollWidth;yScroll=document.body.scrollHeight;}else{xScroll=document.body.offsetWidth;yScroll=document.body.offsetHeight;}
var windowWidth,windowHeight;if(self.innerHeight){if(document.documentElement.clientWidth){windowWidth=document.documentElement.clientWidth;}else{windowWidth=self.innerWidth;}
windowHeight=self.innerHeight;}else if(document.documentElement&&document.documentElement.clientHeight){windowWidth=document.documentElement.clientWidth;windowHeight=document.documentElement.clientHeight;}else if(document.body){windowWidth=document.body.clientWidth;windowHeight=document.body.clientHeight;}
if(yScroll<windowHeight){pageHeight=windowHeight;}else{pageHeight=yScroll;}
if(xScroll<windowWidth){pageWidth=xScroll;}else{pageWidth=windowWidth;}
arrayPageSize=new Array(pageWidth,pageHeight,windowWidth,windowHeight);return arrayPageSize;};function ___getPageScroll(){var xScroll,yScroll;if(self.pageYOffset){yScroll=self.pageYOffset;xScroll=self.pageXOffset;}else if(document.documentElement&&document.documentElement.scrollTop){yScroll=document.documentElement.scrollTop;xScroll=document.documentElement.scrollLeft;}else if(document.body){yScroll=document.body.scrollTop;xScroll=document.body.scrollLeft;}
arrayPageScroll=new Array(xScroll,yScroll);return arrayPageScroll;};function ___pause(ms){var date=new Date();curDate=null;do{var curDate=new Date();}
while(curDate-date<ms);};return this.unbind('click').click(_initialize);};})(jQuery);



jQuery.fn.popUp = function(options)
{
    var settings = {
        name: 'newWindow',
        width: 500,
        height: 600,
        left: false,
        top: false,
        scrollbars: 'yes',
        resizeable: 'no',
        statusbar: 'no',
        menubar: 'no',
        toolbar: 'no'
    }

    if(options) {
        jQuery.extend(settings, options);
    };

    this.each(function(){
        $(this).click(function(){
            var rel = $(this).attr('rel');
            var href = $(this).attr('href');
            if(!rel){
                window.open(href, settings.name);
            } else {
                var rel_split = rel.split('|');
                var width = rel_split[0] != "_blank" ? rel_split[0] : settings.width;
                var height = rel_split[1] ? rel_split[1] : settings.height;
                var scrollbars = rel_split[2] ? rel_split[2] : settings.scrollbars;
                var leftPos = settings.left ? settings.left : (screen.width-width)/2;
                var topPos = settings.right ? settings.right : (screen.height-height)/2;
                
                var config = 'width='+ width +',height='+ height +', \
                            left='+ leftPos +',top='+ topPos +', \
                            scrollbars='+ scrollbars +', \
                            resizable='+ settings.resizeable +', \
                            statusbar='+ settings.statusbar +', \
                            menubar='+ settings.menubar +', \
                            toolbar='+ settings.toolbar;
                            
                window.open(href,settings.name, config);
            }
            return false;
        });
    });
}


jQuery.fn.autoHeight = function(options) 
{
    var settings = {
        minHeight   : false,
        limitHeight  : false,
        ignore  : '',
        padding : 10
    }
    
    if(options) {
        jQuery.extend(settings, options);
    };

    var maxHeight = 0;

    this.not(settings.ignore).each(function(){
        if ($(this).height() > maxHeight){
            if(settings.limitHeight && maxHeight >= settings.limitHeight) {
                maxHeight = settings.limitWidth;
            } 
            else if(settings.minHeight && maxHeight <= settings.limitHeight)
            {
                maxHeight = settings.minHeight;
            } 
            else 
            {
                maxHeight = $(this).height();
            }
        }
    });  
    
    this.not(settings.ignore).height(maxHeight + settings.padding);
    
}


jQuery.fn.perfectForm = function(options)
{
    var settings = {
        overlap: true,
        ignore: ''             
    }
    
    if(!this.length) return this;

    if(options) {
        jQuery.extend(settings, options);
    };
    
    this.not(settings.ignore).each(function(){
        var input = $(this).next('input[type=text], textarea');
        var label = $(this);
        
        // first check all inputs for values, then hide it's label if it has a value
        if( settings.overlap ) {
            label.addClass('overlap');
        }
        
        if( settings.overlap && input.val() != '' ) {
            label.hide();
        }
        
        label.click(function(){
            label.hide();
            input.focus();
        }, function(){
            if( input.val() == '' ) {
                label.show();
            }
        });
        
        // then add a focus event to all inputs to hide their labels when focused on, 
        // and remain hidden on blur if a value is entered
        input.focus(function(){
            label.hide();
        }).blur(function(){
            if( $(this).val() == '' ) {
                label.show();
            }
        });
    });
}



function formatCurrency(num) {
    var num = num.toString().replace(/\$|\,/g, '');
    if (isNaN(num)) num = "0";
    var sign = (num == (num = Math.abs(num)));
    num = Math.floor(num * 100 + 0.50000000001);
    var cents = num % 100;
    num = Math.floor(num / 100).toString();
    if (cents < 10) cents = "0" + cents;
    for(var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
    num = num.substring(0, num.length - (4 * i + 3)) + ',' + num.substring(num.length - (4 * i + 3));
    // return (((sign) ? '' : '') + '$' + num + '.' + cents);
    return (((sign) ? '' : '') + num + '.' + cents);
}

function justifyCurrency(num, howmanydecplaces) {
    var t = num + "";
    if (t.indexOf('.') === -1)  {
        num = num + ".";
    }
    for (i = t.indexOf('.') - t.length + 1 + howmanydecplaces, j = 0; j < i; j++)  {
        t = t + "0";
    }
    return t;
}



String.prototype.titleCase = function () {
	var str = "";
	var wrds = this.split(" ");
	for(keyvar in wrds)
	{
	str += ' ' + wrds[keyvar].substr(0,1).toUpperCase()
	 + wrds[keyvar].substr(1,wrds[keyvar].length);
	}
   return str;
}
