/**
*	Author: Jarrett M. Barnett
*	E-mail: jarrett@mc2design.com
*	Profile: linkedin.com/in/jarrettbarnett
*	Company: MC2 Design Group, Inc.
*	Copyright (c) 2010
*	Last Modified: 2011-10-11 by Brent Boyd
*
*/
$(function (){
    initLightbox();
    initClearInput();
    initGalleryControls();
    initCarousel();
});
/**
 *      INICCLEARINPUT
 *      Notes: Designed to empty input text fields when focused (clicked on).
 *                  Only empties text field if the default value is present (first usage
 *                  of that particular text field basically)...
 */

function initLightbox()
{
    $("a.lightbox").colorbox({maxHeight:"85%", title: true});
}


function initClearInput()
{
    // setup an array to iterate through
    var fields = { // "selector" : "default value"
        ".emailfield" : "email address"
    };

    // loop through fields "array" declared above
    $.each(fields, function(s, v) { // selector & value
        $(s).focus(function(){
            if($(this).val() == v) $(this).val('');
        })
    });
}
function initGalleryControls(){
    $(".next").hover(
    function(){
        $(this).css("opacity","1");
    },
    function(){
        $(this).css("opacity","0");
    });

    $(".prev").hover(
    function(){
        $(this).css("opacity","1");
    },
    function(){
        $(this).css("opacity","0");
    });

    $(".prev").click(function(){
        var _imageactive = $("#content .images li.active");
        var _imageprevious = _imageactive.prev();
        var _activeswitcher = $(".section-box .wrap .pages li.active");
        var _activeswitcherprev = _activeswitcher.prev();

        if(_imageprevious.length == 0){
            _imageprevious = $("#content .images li").last();
            _activeswitcherprev = $(".section-box .wrap .pages li").last();
        }

        _imageactive.removeClass("active").css("margin-left","-671px");
        _imageprevious.addClass("active").css("margin-left","0");
        _activeswitcher.removeClass("active");
        _activeswitcherprev.addClass("active");

    });

    $(".next").click(function(){
        var _imageactive = $("#content .images li.active");
        var _imagenext = _imageactive.next();
        var _activeswitcher = $(".section-box .wrap .pages li.active");
        var _activeswitchernext = _activeswitcher.next();

        if(_imagenext.length == 0) {
            _imagenext = $("#content .images li").first();
            _activeswitchernext = $(".section-box .wrap .pages li").first();
        }

        _imageactive.removeClass("active").css("margin-left","-671px");
        _imagenext.addClass("active").css("margin-left","0");
        _activeswitcher.removeClass("active");
        _activeswitchernext.addClass("active");

    });

}

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']           =   '#captions li';
    settings['switcher_selector']       =   '.switchers li';
    

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

//    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 _desc_selector      = settings.desc_selector;
        var _switcher_selector  = settings.switcher_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);
        var $desc     = $(_desc_selector+"."+_activeclass);
        var $switcher = $(_switcher_selector+"."+_activeclass);
        
        if ( $active.length == 0 ) $active = $(_selector+':last');
        if ( $desc.length   == 0 ) $desc = $(_desc_selector+':last');
        
        var $next          = $active.next().length ? $active.next() : $(_selector+':first');
        var $nextdesc      = $desc.next().length ? $desc.next() : $(_desc_selector+':first');
        var $nextswitcher  = $switcher.next().length ? $switcher.next() : $(_switcher_selector+':first');
        
        
        var $index = $next.index();

        
        
        $active.addClass(_lastactiveclass);
        $desc.addClass(_lastactiveclass);
        $switcher.addClass(_lastactiveclass);

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

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


    } // end process Carousel
    
function mc2CarouselControls(mc2Carousel){
            if(settings.enable_controls) {
            settings.next_btn.click(function (){
                

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

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

        }
}

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

}
