var interval;

$(function() {

    var $el, leftPos, newWidth,
        $mainNav = $("#nav");

    $mainNav.append("<li id='nav_line'></li>");
    var $navLine = $("#nav_line");
        
    var navMargin = $("#nav li a:first-child").css('marginLeft');
    if (navMargin)
        navMargin = Number(navMargin.replace('px', ''));
    else
        navMargin = 0;
            
    var $cpi = $(".current_page_item", $mainNav);
    if ($cpi.length > 0)
        $navLine.width($cpi.find('a').innerWidth())
            .css("left",$cpi.find('a').position().left + navMargin);
    else
        $navLine.width($mainNav.find('a').eq(0).innerWidth())
            .css("left", navMargin);
    $navLine
        .data("origLeft", $navLine.position().left)
        .data("origWidth", $navLine.innerWidth());

    $("#nav li a").hover(function() {
        $el = $(this);
        leftPos = $el.position().left + navMargin;
        newWidth = $el.innerWidth();
        $navLine.stop().animate({
            left: leftPos,
            width: newWidth
        });
    }, function() {
        $navLine.stop().animate({
            left: $navLine.data("origLeft"),
            width: $navLine.data("origWidth")
        });
    }).click(function(e) {
        if ($(':animated').length > 0)
            return false;
    
        var $citem = $(e.target);
        $navLine.data("origLeft", $citem.position().left + navMargin)
            .data("origWidth", $citem.innerWidth());
			
		if ($citem.attr('target') == '_blank')
			return true
        
        $('#main').hide();
        $('#bgs').addClass('loading').find('img:visible').fadeOut('fast');
        clearInterval(interval);
        $.get($citem.attr('href'), function(response) {
            var $main = $('#main');
            var $bg = $main.html(response).find('img.bg:first-child');
            $main.fadeIn('fast', function(){
              initGallery();
              initCinema();
            });

            var reInit = function() {
                $('#bgs').removeClass('loading');
                clearInterval(interval);
                if ($citem.text().toLowerCase() === 'home') {
                    rotateBg();
                    interval = setInterval('rotateBg();', 8000);
                }
            }
            
            if ($bg.length > 0) {
                var $img = $('#bgs img[src="' + $bg.attr('src') + '"]');
                if ($img.length < 1) {
                    $bg.appendTo($('#bgs')).load(function() {
                        $(this).fadeIn(2000, function() {
                            $(this).siblings().hide();
                            reInit();
                        })
                    }).each(function() {
                        if ($(this).attr('complete'))
                            $(this).trigger('load')
                    });
                } else {
                    $bg.remove();
                    $img.appendTo($('#bgs')).fadeIn(2000, function() {
                        $(this).siblings().hide();
                        reInit();
                    })
                }
            } else reInit()
        });
        e.preventDefault();
    });

    initBg();
    initGallery();
    initCinema();
});

function stopVideo() {
    $('video').each(function() {
        $(this).get(0).pause()
    });
    if ($f) {
        $f('*').each(function() {
            this.stop()
        })
    }
}

function initCinema() {
    if ($('#cma .panel').length > 1) {
        $('#cma').codaSlider({
            crossLinking: false,
            dynamicArrows: false,
            panelTitleSelector: 'em.title',
            onBeforeClick: function(obj) {
                stopVideo();
            }
        });
    }
    $('script[id^=v_]').each(function() {
    	var v_id = $(this).attr('id').substr(2);
    	var video = $($(this).html()).appendTo($('#' + v_id + ' .video-js-box'));
    	VideoJS.setup({}, video);
	    //$($('#v_vid_1').html()).appendTo($('#vid_1 .video-js-box'));        
  	  //VideoJS.setup({}, $('#vid_1 .video-js-box video'));
    });
}

function initGallery() {
    if ( $('.ad-gallery').length > 0 )
    galleries = $('.ad-gallery').adGallery({
        loader_image: 'http://amourwedding.ca/wp-content/themes/awTheme/css/img/loader.gif',
        slideshow: { enable: false },
        effect: 'fade',
        callbacks: {
            init: function() {
                this.preloadImage(0);
                this.preloadImage(1);
                this.preloadImage(2);
            },
            afterImageVisible: function() {
                $(this.current_image).append('<div class="overlay" />');
                if (this.current_index + 1 < this.images.length) {
                    //this.loading(true);
                    this.preloadImage(this.current_index + 1,
                        function() { }
                    );
                }
            }
        }
    });
}

function initBg() {
    preloadImg = function () {
        if (imgBgs.length > 0) {
            var imgBg = $('<img />');
            imgBg.attr('src', imgBgs.pop());

            $('<img />').load(function () {
                $(this).prependTo('#bgs');
                preloadImg();
            });
            if (imgBg.attr('complete'))
                imgBg.trigger('load')
        }
    };
    
    addBg();
    	
    $('#bgs img.curr').load(function() {
        $(this).fadeIn(1000, function() {
          $('#bgs').removeClass('loading');
          preloadImg();
          if (!interval && isRoot()) {
          	//rotateBg();
          	interval = setInterval('rotateBg();', 8000)
          }
        })
    }).each(function() {
        if ($(this).attr('complete'))
            $(this).trigger('load')
    });
}

function rotateBg() {
    var $bgs = $('#bgs img');
    if ($bgs.filter('.curr').length > 0) {
        if ($bgs.not('.bg').length > 1) {
            var nIndex = $bgs.index('.curr') + 1;
            if (!$bgs.eq(nIndex).length)
                nIndex = 0;
            $bgs.removeClass('curr').eq(nIndex).addClass('curr')
            .appendTo('#bgs').fadeIn(2000, function() {
                $bgs.not('.curr').hide();
            });
        }
    } else if ($bgs.length > 0) {
      $bgs.eq(0).addClass('curr').fadeIn(2000)
    }
    $bgs.filter('.bg').remove();
}

function addBg() {
  var $bg = $('#main img.bg:first-child');
  if ($bg.length > 0) {
		var $img = $('#bgs img[src="' + $bg.attr('src') + '"]');
		if ($img.length < 1) {
			$bg.appendTo($('#bgs')).load(function() {
				$(this).fadeIn(2000, function() {
					$(this).siblings().hide();
				})
			}).each(function() {
				if ($(this).attr('complete'))
					$(this).trigger('load')
			});
		} else {
			$bg.remove();
			$img.appendTo($('#bgs')).fadeIn(2000, function() {
				$(this).siblings().hide();
			})
  	}
  }
}

function isRoot() {
	var href = location.href;
	return href === root;
}
