$(document).ready( function() {
    
   $(window).load( function() {
    
        //Frontpage FadeIn/SlideDown
        setTimeout(fp, 1200);
        function fp()
        {
            $('div.intro-slideDown').slideDown(4000, 'easeInOutExpo');
            $('img.intro-fadeIn').fadeIn(3200, 'linear');
        
        }
        
        $('#main.paragraph-style #right-body .para, #jfy-wrapper, #contact-wrapper').slideDown(3000, 'easeInOutExpo');
	
	
    /*
    Gallery
    */

        setTimeout(gv, 1500);
        function gv()
        {
            $('#main.port #Gallery li').show();
            $('#main.port #Gallery').galleryView({
                panel_width: 396,
                panel_height: 527,
                frame_width: 65,
                frame_height: 100,
                show_overlays: true,
                show_filmstrip_nav: true,
                frame_gap: 10
            }).fadeIn('slow');
            $('.gv-strip_wrapper, .gv-nav-next, .gv-nav-prev').hide();
            $('#Gallery').live('mouseenter', function() {
               $('.gv-strip_wrapper, .gv-nav-next, .gv-nav-prev').fadeIn(); 
            }).live('mouseleave', function(){
                $('.gv-strip_wrapper, .gv-nav-next, .gv-nav-prev').fadeOut(); 
            });
        }
	
   });
   
   $('#main.port #gv-loading').fadeIn(2200, 'swing').delay(2200).fadeOut('slow');
   countAndPositionText('li', 'gv-item', 'p.gv-text-head');

    function countAndPositionText(selector_base, selector_class, text_placement_selector)
    {
      $(selector_base + '.' + selector_class).each( function() {
      var items = $(selector_base + '.' + selector_class).length;
      var position = $(this).prevAll(selector_base).length + 1;
      var posClass = selector_class + '-list-pos-' + position;
      $(this).addClass(posClass);
      $(selector_base + '.' + posClass + ' ' + text_placement_selector).append(position + ' of ' + items + ' photos'); 
      });
    }
   
   
   /*
    Brides
   */
   
   var auto = 'on';
   
   //Adding the Position Text
   var brideTimer = 0;
   $('ul#Brides').children('li').each( function() {
    brideTimer = brideTimer + 1;
    var bt = 'bt-' + brideTimer;
    $(this).addClass(bt);
    bt = 'li.' + bt;
    countAndPositionText(bt + ' li', 'bride-item', 'p.bride-text-head');
    
  //Set width of bride ul's
    var liCount = $(bt + ' ul.bride li').length;
    var ulWidth = liCount * 397;
    $(bt + ' ul.bride').css({width: ulWidth + 'px'});
   });
   
   $('ul#Brides li img.bw_bride').bind('click', function()
    {
      var bride = $(this).siblings('ul').attr('id');
      activateBrideSlider(bride, this);
      autoNav(auto, 'next');
    });
   
   $('#main.brides div.gv-nav-next, #main.brides div.gv-nav-prev').bind('click', function() {
      autoNav('off');
      if ($(this).hasClass('prev'))
      { var dir = 'prev'; } else { var dir = 'next'; }
      //sliderNav(dir);
      faderNav(dir);
    });
    
    $('#main.brides div.close').click( function() {
      $('.activeSlider').hide().removeClass('activeSlider');
      $('#left-body p').hide();
      $('#slider-buttons div').css({ zIndex : -100, display : 'none' });
      autoNav('off', 'none');
    });
    
    //show fader arrows on hover
    $('#bridesWrapper').bind('mouseentery', faderNavHider('me'));
    $('#bridesWrapper').bind('mouseleave', faderNavHider('mo'));
    
    function faderNavHider(action)
    {
        if(action === 'me')
        {
            //$('#bridesWrapper').unbind('mouseenter'                 );
            $('#slider-buttons div.arrow').fadeIn(400, function(){
              
            });//$('#bridesWrapper').bind('mouseenter', faderNavHider('me'));
        }
        else
        {
            $('#slider-buttons div.arrow').fadeOut();

        }
    }
    
    //fader row nav fadein on thumbnail hover/click control
    var anto;
    $('.fader-row-nav div').live('mouseover', function() {
        $(this).animate({ opacity : 1.0 });    
    }).live('mouseleave', function() {
        $(this).animate({ opacity : 0.5 });
    }).live('click', function() {
        clearTimeout(anto);
        autoNav('off', 'none');
        var oldImg = $('.activeSlider .activeImage');
        var imgClass = $(this).children('span').attr('class');
        var newImg = $('.activeSlider li.' + imgClass + ' img');
        fader(oldImg, newImg); 
        anto = setTimeout( function(){ autoNav('on', 'next') }, 4200);
        $('.fader-row-nav div.activeImgCell').removeClass('activeImgCell');
        $(this).addClass('activeImgCell');
    });
    
    function faderRowNav()
    {
        //If fader row nav doesnt exist, create it
        var frn = false;
        $('#slider-buttons div').each( function() {
            if($(this).hasClass('fader-row-nav'))
            {
                //if it exists dont create, but clear it
                frn = true;
                $('#slider-buttons .fader-row-nav').html('');
            }
        });
        
        if(frn == false)
        {
            $('#slider-buttons').append('<div class="fader-row-nav"></div>');
            $('#slider-buttons .fader-row-nav').css({
                position : 'absolute',
                width : '350px',
                height : '100px',
                overflow : 'hidden',
                top : '460px',
                left : '-400px',
                zIndex : 4000
            });
        }
        
        //populate fader row nav twice(for filler)
        populateFader('first');
        populateFader('second');
        function populateFader(run)
        {
            var c = false;
            var imgClass1;
            $('.activeSlider li').each( function() {
                if(run == 'first')
                {
                    if($(this).children('img').hasClass('activeImage'))
                    {
                        c = true;
                        imgClass1 = 'activeImageCell'
                    }
                    else
                    {
                        imgClass1 = "inactiveImg";
                    }
                }
                else
                {
                    imgClass1 = "inactiveImg-sr";
                }
                
                if(c != false || run == 'second')
                {
                    var imgH = $(this).children('img').height();
                    var imgW = $(this).children('img').width();
                    if(imgH > imgW){ imgClass = 'tall' }else{ imgClass = 'wide' }
                    var imgSrc = $(this).children('img').attr('src');
                    var imgClass2 = $(this).attr('class').replace("bride-item ", "");
                    $('#slider-buttons .fader-row-nav').append('<div class="'+ imgClass1 +'"><span class="'+ imgClass2 +'"><img src="'+ imgSrc +'" class="'+ imgClass +'"></span></div>');
                }
            });
        }

        
        
        $('#slider-buttons .fader-row-nav div').each( function() {
            $(this).css({
                width : '75px',
                height : '100px',
                overflow : 'hidden',
                margin : '0 10px 0 0',
                float : 'left',
                cursor : 'pointer',
                opacity : '0.5'
            });
        });

        
    }
    
    
    
    
    function autoNav(activate, direction)
    {
        
         if(activate === 'on')
         {
             faderNav(direction);
             automate = setTimeout( function() { autoNav(activate, direction) }, 4200);
             $('#slider-buttons div.next, #slider-buttons div.prev').hide();
         }
         else
         {
             clearTimeout(automate);
         }
    }
    
    function activateBrideSlider(ulId, thisObject)
    {
      $(thisObject).unbind();
      $('#slider-buttons div').show().css({ zIndex : 4000 });
      if($('.activeSlider li').length == 1)
      {
	$('div.prev, div.next').hide();
      }
      $('ul#' + ulId).fadeIn('slow').addClass('activeSlider');
      $('ul#' + ulId + ' li img').each( function() {
	var imgHeight = $(this).height();
        if(imgHeight > 530)
        {
            var modHeight = (530 - imgHeight) * 0.5;
            // client does not want images centered verticially -r
            //adding margin for tall images only -j
            $(this).css({marginTop: modHeight + 'px'});
        }
	$('ul#' + ulId + ' li img').first().addClass('first activeImage');
	$('ul#' + ulId + ' li img').last().addClass('last');
      });
      var bt_body = $('.activeSlider').siblings('p.bride-text-body').html();
      var bt_header = $('.activeSlider li p.bride-text-head').html();
     
      $('p#bride-text-body').html(bt_body).show();
      $('p#bride-text-header').html(bt_header).show();
      $('ul#Brides li img').bind('click', function()
       {
	 var bride = $(this).siblings('ul').attr('id');
	 activateBrideSlider(bride, this);
       });
    }
    
    function fader(oldImg, newImg)
    {
        $(oldImg).css({ zIndex : 1000 }).removeClass('activeImage').animate({ opacity : 0 }).css({ display : 'none' });
        $('.activeSlider img').clearQueue();
        $(newImg).addClass('activeImage').css({ zIndex : 2000, opacity : 0, display : 'block' }).animate({ opacity : 1.0 }, 1000, 'linear');
        
    }
    
    
    function faderNav(dir)
    {
        $('#main.brides div.gv-nav-next, #main.brides div.gv-nav-prev').unbind();
        var ul = 'ul#' + $('.activeSlider').attr('id');
        var liCount = $(ul + ' li').length;
        //Run through images apply neccesary fader styles
        $('.activeSlider li.bride-item img').each( function() 
        {
            $(this).css({position : 'absolute'});
            if(!$(this).hasClass('activeImage'))
            {
                $(this).css({ opacity: 0, display : 'none'});
            }
        });
        
        if (dir == 'prev')
        {
            if ($('.activeSlider .activeImage').hasClass('first'))
            {
                //if first image find last image position
                var newImg = $('.activeSlider img.last');
            }
            else
            {
                //find previous image position
                var newImg = $('.activeSlider .activeImage').parent('li.bride-item').prev('li.bride-item').children('img');
            }
        }
        else
        {
            if ($('.activeSlider .activeImage').hasClass('last'))
            {
                //set position for first image 
                var newImg = $('.activeSlider img.first');
            }
            else
            {
                //get position for next image
                var newImg = $('.activeSlider .activeImage').parent('li.bride-item').next('li.bride-item').children('img');
            }
        }
        //populate oldImg var & fire fader()
        

        
        fader($('.activeSlider .activeImage'), newImg);
        //Move text over
        
        var bt_head = $('.activeSlider li .activeImage').siblings('p.bride-text-head').html();
        $('p#bride-text-header').html(bt_head);
        
        faderRowNav();
        
        
        //rebind
        $('#main.brides div.gv-nav-next, #main.brides div.gv-nav-prev').bind('click', function() {
            if ($(this).hasClass('prev'))
            { var dirx = 'prev'; } else { var dirx = 'next'; }
            faderNav(dirx);
        });
       
    }
    
    function sliderNav(dir)
    {
      $('#main.brides div.gv-nav-next, #main.brides div.gv-nav-prev').unbind();
      var ul = 'ul#' + $('.activeSlider').attr('id');
      var imgWidth = 396;
      var liCount = $(ul + ' li').length;
      if (dir == 'prev')
      {
	if ($('.activeSlider .activeImage').hasClass('first'))
	{
	  //if first image find last image position
	  var pos = (liCount * imgWidth) - imgWidth;
	  $('.activeSlider .activeImage').removeClass('activeImage');
	  $('.activeSlider img.last').addClass('activeImage');
	}
	else
	{
	  //find previous image position
	  var curPos = $(ul).position();
	  var pos = (curPos.left*-1) - imgWidth;
	  $('.activeSlider .activeImage').removeClass('activeImage').parent('li.bride-item').prev('li.bride-item').children('img').addClass('activeImage');
	  
	}
      }
      else
      {
	if ($('.activeSlider .activeImage').hasClass('last'))
	{
	  //set position for first image (reset to 0)
	  var pos = 0;
	  $('.activeSlider .activeImage').removeClass('activeImage');
	  $('.activeSlider img.first').addClass('activeImage');
	}
	else
	{
	  //get position for next image
	  var curPos = $(ul).position();
	  var pos = (curPos.left*-1) + imgWidth; 
	  $('.activeSlider .activeImage').removeClass('activeImage').parent('li.bride-item').next('li.bride-item').children('img').addClass('activeImage');
	}
      }
      //Move it
      $(ul).animate({left: '-' + pos + 'px'}, 1000, 'swing');
      var bt_head = $('.activeSlider li .activeImage').siblings('p.bride-text-head').html();
      $('p#bride-text-header').html(bt_head);
      //rebind
      $('#main.brides div.gv-nav-next, #main.brides div.gv-nav-prev').bind('click', function() {
        if ($(this).hasClass('prev'))
        { var dirx = 'prev'; } else { var dirx = 'next'; }
        sliderNav(dirx);
      });

    }
    
    
    /* Just For You Page */
    $('#main.jfy-page #right-body h2.r_menu').hover( function() {
      $(this).addClass('hover');  
    }, function(){
      $(this).removeClass('hover');
    });
    
    $('#main.jfy-page #right-body h2.r_menu').bind('click', function() { h2MenuClick($(this).attr('id')); });
    
    function h2MenuClick(thisId)
    {
      var id = '#' + thisId;
      if(!$(id).hasClass('active'))
      {
	$(id).unbind('click')
	//Menu Stuff First
	$('#right-body h2.active').removeClass('active hover');
	$(id).addClass('active').removeClass('hover');
	//Body Stuff Now
	$('#r_body-list li.active').slideUp('2200', 'easeOutQuad', function() {
	  $(id + '_body').slideDown('2000', 'easeInExpo').addClass('active');
	}).removeClass('active');
	
	$(id).bind('click', function() { h2MenuClick($(this).attr('id')); });
      }
    }
    
    
});
   











