/**
*	Author: Jarrett M. Barnett
*	E-mail: jarrett@mc2design.com
*	Company: MC2 Design Group, Inc.
*	Copyright (c) 2009-2011
*	Last Modified: 2011-02-07
*/


// jquery ready
$(function() {
//    nitCustomFunctions();
//    initSearch();
//    initExtlinks();
    initColorbox();
    initGalleryScroll();
    navigationEvents();
//    initLightbox();
//    initCarousel();
});

function initColorbox()
{
    $("a.lightbox").colorbox({maxHeight:'85%',maxWidth:'85%'});
}

function initGalleryScroll()
{
    $('div.G1').galleryScroll();
}

function initLightbox()
{
    $("a.lightbox").colorbox();
}

function initCustomFunctions()
{
    $.fn.delay = function(duration) {
        $(this).animate({ dummy: 1 }, duration);
        return this;
    };
}

function initExtlinks()
{
    var _extlinkclass = $('a:external');
    var _extlink = $('a[rel*="external"]');
    var _noclick = $('a.noclick');
    var _pdf = $("a[href*=.pdf]");

    // Creating custom :external selector
    $.expr[':'].external = function(obj){
        return !obj.href.match(/^mailto\:/)
                && (obj.hostname != location.hostname);
    },
        // Add 'external' CSS class to all external links
        _extlinkclass.attr('rel', 'external'),


    // Open External Links In New Window
    _extlink.click(function(){
        $(this).attr('target','_blank');
    }),

    // Links that have class of noclick not direct to target href
    _noclick.click(function() {
        return false;
    });

    _pdf.click(function(){
	if($(this).attr("target") == "")
        {
            window.open(this.href);
            return false;
        }
    });

}

function initPreloader()
{
    jQuery.preloadImages = function()
    {
      for(var i = 0; i<arguments.length; i++)
      {
        jQuery("<img>").attr("src", arguments[i]);
      }
    }

    $(document).ready(function(){
        $.preloadImages(
                // design elements
                "/themes/nevinandwitt/assets/graphics/sb-menu-active.gif",
                "/themes/nevinandwitt/assets/graphics/more-active.png"
        );
    }); // end jQuery
}

function initSearch()
{
    var _search = $('input#search');
    var _defaultvalue = "enter keywords";

    // On focus of search field, clear it unless user keywords exist
    _search.focus(function(){
        _searchvalue = $(this).val('');
        // only erase if user hasnt already performed a search
        if(_searchvalue == 'enter keywords') $(this).val('');
    });
}

function initSubnavigation()
{
    var _subpages = $('div.twocolumns');
    var _subnavitem = $("li.sub-level-1 a");

    // BEGIN CLICK EVENT
    _subnavitem.click(function(){

        // stop existing animations
        _subpages.stop(false,true);
        // make navigation show "selected" state
        $("li.sub-level-1").removeClass('active'),
        $(this).parent().addClass('active');

        // content variables
        var _identifier     = $('div.' + $(this).attr('rel'));
        var _currentactive  = $('div.subactive');
        var _summarytext    = $('.text-block .text-holder');
        var _summaryimg     = $('.text-block img.alignright');

            // hide landing page text and image
            _summarytext.fadeOut(300);
            _summaryimg.slideUp(1000, function(){
                // hide landing page text/image if neccesary, slide-hide any showing content and slide-show requested content
                if(_subpages.hasClass('subactive')) {
                    _currentactive.fadeOut(500,function(){
                        _subpages.removeClass('subactive');
                        _identifier.fadeIn(1000, function(){
                            _identifier.addClass('subactive');
                        }); // end slideDown
                    });
                } else {
                    _identifier.fadeIn(1000, function(){
                        _identifier.addClass('subactive');
                    }); // end _identifier.slideDown()
                }
            }); // end _summaryimg.slideUp()

        return false;
    }); // END CLICK EVENT

} // end initSubnavigation()

function initCarousel() {

    var settings = {};

//    carousel unique name
    settings['name']                    =   'slideshow';

//    elements
    settings['selector']                =   '#carousel li';
    settings['slide_selector_class']    =   ''; // only apply to selectors with the provided class
    settings['desc_selector']           =   '';

//    default settings
    settings['autoplay']                =   true;
    settings['slide_timing']            =   2500; // slide display timer in milliseconds
    settings['enable_controls']         =   false;

//    button controls
    settings['prev_btn']                =   'a.prev';
    settings['next_btn']                =   'a.next';
    settings['play_btn']                =   'a.play';
    settings['pause_btn']               =   'a.pause';

//    transition controls
    settings['effect_transition']       =   'fade'; // transition effect
    settings['effect_timing']           =   1500; // fade transition in milliseconds

//    active / last-active classes
    settings['active_class']            =   'active'; // don't forget to set the first element to opacity 0 by default
    settings['lastactive_class']        =   'last-active';

    slideshow = new mc2Carousel(settings);
}

function mc2Carousel(settings) {

//    $("#splashcarousel").show();

    var settings2 = settings;

    function processCarousel()
    {
        var _selector           = settings.selector;

        //var _selector_class     = settings['slide_selector_class'];
        var _activeclass        = settings['active_class'];
        var _lastactiveclass    = settings['lastactive_class'];
        var _effect_timing      = settings['effect_timing'];

        var $active = $(_selector+'.'+_activeclass);

        if ( $active.length == 0 ) $active = $(_selector+':last');
        var $next     = $active.next().length ? $active.next() : $(_selector+':first');

        $active.addClass(_lastactiveclass);

        $next.css({opacity: 0.0})
            .addClass(_activeclass)
            .animate({opacity: 1.0}, _effect_timing),

        $active.removeClass(_activeclass+' '+_lastactiveclass),
        $active.animate({opacity: 0.0}, _effect_timing);

        if(settings.enable_controls) {
            settings.prev_btn.removeClass(_activeclass),
            settings.pause_btn.addClass(_activeclass);
        }
    } // end process Carousel

    if ($(settings.selector).length > 1) // run Carousel only if there is more than 1 element to carousel through
    {
        window[settings['name']] = setInterval(processCarousel, 5000, settings2);
    }
}

function navigationEvents()
{
    $("div.holder, .link-prev, .link-next").hover(function(){
        if($(this).hasClass("holder"))
        {
            $(".link-prev, .link-next, .holder .text").stop(true,true).fadeIn(400);
        } else {
            $(this).stop(true,true).show();
        }

    }, function(){
        $(".link-prev, .link-next, .holder .text").stop(true,true).fadeOut(400);
    });
}


