var homeSliderThumbs = [];
Cufon.set("hover",true);
Cufon.set("hoverables",{a:true, span:true});
Cufon.replace(".bauer-bodoni",{fontFamily: "Bauer Bodoni"});
Cufon.replace(".bauer-bodoni-osf",{fontFamily: "Bauer Bodoni Bold OSF"});
Cufon.replace(".bauer-bodoni-black",{fontFamily: "Bauer Bodoni Black"});

// Header navigation special styling
Cufon.replace("div#header-navigation ul#menu-header-navigation > li > a", {hover: true, fontFamily: "Bauer Bodoni Bold OSF", textShadow: "1px 2px #273f19" });
Cufon.replace("div#header-navigation ul.sub-menu li a", {hover: true, fontFamily: "Bauer Bodoni Bold"});
Cufon.replace("div#top-links-container ul li a", {hover: true, fontFamily: "Bauer Bodoni Black", textShadow: "1em 1em 1em #fff"});

// Cufon with special styling (ie. Text Shadow)
Cufon.replace("div.slider-content h1, div.slider-content h2", {fontFamily: "Bauer Bodoni Bold OSF", textShadow: "1px 1px #000"});
Cufon.replace("div#header-tagline-container p.tagline", {fontFamily: "Bauer Bodoni Bold OSF", textShadow: "1px 1px #534741"});
Cufon.replace("div#header-tagline-container div.textwidget p", {fontFamily: "Bauer Bodoni", textShadow: "1px 1px #534741"});
Cufon.replace("form.reservation-widget input#sendbutton", {fontFamily: "Bauer Bodoni", textShadow: "1px 1px #747d3b"});
Cufon.replace("div.content-submenu h2.home-subtitle", {fontFamily: "Bauer Bodoni Bold OSF", textShadow: "1px 1px #697635" });
Cufon.replace("div#sidebar-subtitle-wrap p", {fontFamily: "Bauer Bodoni", textShadow: "1px 1px #4e5b20" });
Cufon.replace("div#newsletter-form-widget p.newsletter-form-title", {fontFamily: "Bauer Bodoni", textShadow: "1px 1px #293712" });
Cufon.replace("div.content-submenu ul#subpage-menu li a", {fontFamily: "Bauer Bodoni", textShadow: "1px 1px #646c3a" });
Cufon.replace("div.ui-datepicker-title span", {fontFamily: "Bauer Bodoni"});
Cufon.replace("div#main-content div.post-content h1, div#main-content div.post-content .header-title", {fontFamily: "Bauer Bodoni"});

var pageContentHeight,pageSidebarHeight;

(function ($) {

    $(document).ready(function() {
        $("input#DateIn, input.cf_date").unbind().datepicker({
            startDate:"01/01/1899",
            showOn : "both",
            nextText: "",
            prevText: "",
            minDate: 0
        });
        $("form.reservation-widget select.cformselect").selectmenu({"maxHeight": null, "menuWidth": 41,"handleWidth":17, "width":37});

        var FullscreenrOptions = {  width: 2200, height: 940, bgID: '#bgimg' };
        $.fn.fullscreenr(FullscreenrOptions);
        $('#home-slider').anythingSlider({
            expand : true,
            autoPlay: true,
            delayBeforeAnimate  : 1000,
            delay: 10000,
            buildArrows: false,
            buildStartStop: false,
            hashTags: false,
            appendNavigationTo: "#home-slider-navigation",
            autoPlayLocked: true,
            resumeDelay: 5000,
            navigationFormatter : function(i, panel){
              return '<span class="tooltip-wrap"><img class="tooltip-img" src="'+homeSliderThumbs[i-1]+'" /><span class="tooltip-arrow"></span></span>';
            },
            onInitialized: function(e, slider) {
                var FullscreenrOptions = {  width: 2200, height: 940, bgID: '.slider-img' };
                //$.fn.fullscreenr(FullscreenrOptions);
                $(slider.$el).css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1.0},100);
            }
        }).anythingSliderFx({
          inFx : {
            'img.slider-img' : { opacity: 1, duration: 1000 }
           },
           outFx : {
            'img.slider-img' : { opacity: 0, duration: 1000 }
           }
	  	}).bind('slide_begin', function(event, slider){
           $("#home-slider-content").anythingSlider(slider.targetPage);
        });

        $("#home-slider-content").anythingSlider({
            autoPlay: false,
            buildArrows: false,
            buildNavigation: false,
            buildStartStop: false,
            resizeContents: false,
            delayBeforeAnimate: 1500,
            delay: 5000,
            onInitialized: function(e, slider) { $(slider.$el).css({opacity: 0.0, visibility: "visible"}).animate({opacity: 1.0},100); }
        }).anythingSliderFx({
          inFx : {
            'div.slider-content' : { opacity: 1, duration: 800 }
           },
           outFx : {
            'div.slider-content' : { opacity: 0, duration: 500 }
           }
	  	});

        $("div#home-slider-navigation ul.thumbNav li a").hover(function() {
            $(this).find("span.tooltip-wrap").css('display','block').animate({opacity:1, top: -91},200);
        }, function() {
            $(this).find("span.tooltip-wrap").stop(true,true).fadeOut(200).css({top: -97});
        });

		$("div#header-navigation ul#menu-header-navigation > li.menu-item").hover(function () {
		     clearTimeout($.data(this, 'timer'));
		     $("ul.sub-menu").not($(this).find("ul.sub-menu")).css({"z-index":900},function() {}).stop(true,true).animate({opacity:0, top: 31},400).css('display','none');
             $('ul.sub-menu', this).css({"z-index":999, "display": "block"}).stop(true, true).animate({opacity:1, top: 36},200);
		  }, function () {
		    $.data(this, 'timer', setTimeout($.proxy(function() {
		       $("ul.sub-menu", this).css({"z-index":900}).stop(true, true).fadeOut(300);
		    }, this), 200));
		  });
        
        // Build these functions that are cufon dependant
        Cufon.CSS.ready(function() {
            // Build Arrows when Cufon has replaced text
            $("div#header-navigation ul#menu-header-navigation > li > a").each(function() {
                var topLevelPos = $(this).position();
                var topLevelWidth = $(this).width();
                var $submenu = $(this).next("ul.sub-menu");
                $("li.submenu-arrow", $submenu).css("left",topLevelPos.left+(topLevelWidth/2)+21-7);
            });
            // Build Homepage Widgets Logic
             $("div#homepage-widget-container div.homepage-widget").each(function() {
                var calcBottom = -178+$("p.widget-title",this).innerHeight();
                $("div.widget-container",this).css("bottom",calcBottom).data("bottom",calcBottom);
                $("div.viewport",this).css("height",178-$("p.widget-title",this).innerHeight());
                $('div.widget-container div.tiny-scrollbar').tinyscrollbar();
            });

            // Equal height of content and sidebar
            // TODO: Check for all cases
            pageContentHeight = $("#main-content-wrapper #main-content").height();
            pageSidebarHeight = $("#main-content-wrapper #sidebar").height();
            if(pageContentHeight > pageSidebarHeight) { $("#main-content-wrapper #sidebar-container").height(pageContentHeight); }
            else {
                $("#main-content-wrapper div#main-content").height(pageSidebarHeight);
                $("#main-content-wrapper div#sidebar-container").height(pageSidebarHeight);
            }
        });

        $("div#homepage-widget-container div.homepage-widget").hover(function() {
            $("img.widget-overlay",this).fadeOut(200);
        }, function() {
            $("img.widget-overlay",this).stop(true,true).fadeIn(200);
        });

        $("div#homepage-widget-container div.homepage-widget").hover(function() {
            $("div.widget-container",this).animate({"bottom":0},400);
        }, function() {
            var dataBottom = $("div.widget-container",this).data("bottom");
            $("div.widget-container",this).stop(true,true).animate({"bottom":dataBottom},400);
        });

        // Logic for search bar animation
        var searchContainerWidth = $("div#top-links-container div#search-input-container").width();
        $("div#top-links-container div#search-input-container").css("width",1);

        $("div#top-links-container input#s").blur(function() {
            $("div#search-input-container").animate({"width":1},300,function() {
                $("div#search-input-container").removeClass("open-state");
            });
        });
        $("div#top-links-container span.submit-icon-trigger").click(function() {
            if($("div#search-input-container").hasClass("open-state")) return;
            $("div#search-input-container").addClass("open-state");
            $("div#top-links-container div#search-input-container").animate({"width":searchContainerWidth},300);
            $("div#top-links-container input#s").focus();
        });
        $('div#top-links-container input#s').keyup(function(e){
            if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {
               $('form#searchform').submit();
            }
        });
        $("a.colorbox").colorbox({
            rel:"ngg-album-group",
            opacity: 0.5,
            previous:"",
            next:"",
            current: "<strong>{current}</strong> of {total}",
            onComplete: function() { Cufon.refresh(); },
            initialWidth: 950,
            initialHeight: 550,
            close: "Close (X)"
        });
        $("a.youtube").colorbox({
            rel:"ngg-album-group",
            opacity: 0.5,
            previous:"",
            next:"",
            current: "<strong>{current}</strong> of {total}",
            onComplete: function() { Cufon.refresh(); },
            initialWidth: 950,
            initialHeight: 550,
            close: "Close (X)",
            iframe:true, innerWidth:950, innerHeight:600
        });

        $("div#footer-contact-info li.tagline").click(function() {
            $.colorbox({
                opacity: 0.5,
                previous:"",
                next:"",
                inline: true,
                width: 550,
                height: "auto",
                scrolling: false,
                close: "Close (X)",
                href: $("div#footer-container div#content-popup"),
                onComplete: function() { Cufon.CSS.ready(function() { $.colorbox.resize(); }); }
            });
        });

        // AJAX obtained data for ajax-submenu
        $("div#ajax-submenu-container ul#ajax-menu li a").click(function() {
            $("div#ajax-submenu-container ul li a").removeClass("current");
            $(this).addClass("current");
            Cufon.refresh("div#ajax-submenu-container ul#ajax-menu li a.current span");
            var ajaxUrl = $(this).attr("href");
            ajaxUrl = ajaxUrl.replace("#!","");
            var postIDArray = $(this).attr("id").split("-");
            $("div.post-content").animate({opacity:0}, 400);
            $("div.ajax-loader").fadeIn();
            $.getJSON(ajaxUrl+"?ajax=1&postID="+postIDArray[1], function(data) {
                if(data!="fail") {
                    $("div#content-wrapper div.post-content").animate({opacity:0},400,function() {
                        $("div#content-wrapper div.post-content").html(data.content);
                        Cufon.refresh();
                        Cufon.CSS.ready(function() {
                            var newContentHeight = $("div#content-wrapper").innerHeight() + $("div.content-submenu").height()
                                                    + $("div.content-submenu-level2").height();
                            newContentHeight = (newContentHeight < pageSidebarHeight) ? pageSidebarHeight : newContentHeight;
                            $("div#main-content, div#sidebar-container").animate({height:newContentHeight});
                            $("div#content-wrapper div.post-content").delay(200).animate({opacity:1},800);
                            $("div.ajax-loader").fadeOut();
                        });
                    });
                    if(data.headerImg != "") {
                        if($("div#featured-image-container img.featured-img").length > 0) {
                            $("div#featured-image-container img.featured-img").fadeOut(400,function() {
                                $(this).remove();
                                $("div#featured-image-container").append("<img onload=\"jQuery(this).fadeIn(400);\" src=\""+data.headerImg+"\" class=\"featured-img\" />");
                            });
                        } else {
                            $("div#featured-image-container").append("<img onload=\"jQuery(this).fadeIn(400);\" src=\""+data.headerImg+"\" class=\"featured-img\" />");
                        }
                    }
                    if(data.headerTitle != "") {
                        $("div#content-wrapper h1.header-title").html(data.headerTitle);
                        Cufon.refresh();
                    }
                } else {
                    $("div.ajax-loader").fadeOut();
                    $("div#content-wrapper div.post-content").delay(200).animate({opacity:1},800);
                }
            });
        });
        
        $("div#ajax-submenu-container ul#ajax-menu li a").hover(function() {
            $(this).addClass("hover");
            $("span",this).css({"background-color":"#fff"});
            Cufon.refresh("div#ajax-submenu-container ul#ajax-menu li a");
        },function() {
            $(this).removeClass("hover");
            $("span",this).css({"background-color":"#534741"});
            Cufon.refresh("div#ajax-submenu-container ul#ajax-menu li a");
        });

        $("div#accordion-container").accordion({header: "p.accordion-header", autoHeight: false});

        $('.ui-accordion').bind('accordionchange', function(event, ui) {
            var newContentHeight = $("div#content-wrapper").innerHeight() + $("div.content-submenu").height()
                                    + $("div.content-submenu-level2").height();
            newContentHeight = (newContentHeight < pageSidebarHeight) ? pageSidebarHeight : newContentHeight;
            $("div#main-content, div#sidebar-container").animate({height:newContentHeight});
            $("div#content-wrapper div.post-content").delay(200).animate({opacity:1},800);
        });

        $("form.reservation-widget").attr("target","_blank");
    });
})(jQuery);

function recalcHeight() {
    var newContentHeight = $("div#content-wrapper").innerHeight() + $("div.content-submenu").height()
                            + $("div.content-submenu-level2").height();
    newContentHeight = (newContentHeight < pageSidebarHeight) ? pageSidebarHeight : newContentHeight;
    $("div#main-content, div#sidebar-container").animate({height:newContentHeight},function() {
       $("div#disqus_thread").animate({opacity:1});
    });
}
