$(document).ready(function()
{
    $("span").filter(function() { return this.id.match(/sharethis_\d+/) })
             .find("a")
             .removeClass("stbutton")
             .removeClass("stico_default")
             .prepend('<img src="/img/icon-sharethis.png" width="18" height="18" alt="Icon ShareThis"/>');

    $(".widget a").click(function(event)
    {
        event.preventDefault();

        clearTimeout(marqueeInterval);

        $(".widget a").removeClass("active");
        $(this).addClass("active");

        var id = parseInt($(this).text());
        var widget = $(this).parent().parent();
        var images = widget.find(".images");
        var img = widget.find(".images #image-" + id);
        var a = widget.find(".images #a-" + id);
        var url = $(this).href;

        if (widget.attr("id") != "featured-articles")
        {
            img.css("opacity", 0);
            images.append(img);
            img.animate({opacity:1}, 500);
        }
        else
        {
            var readText = a.attr("href").indexOf("/blog/") ? "read article" : "read blog";
            $("#read").attr("href", a.attr("href")).text(readText);

            a.css("opacity", 0);
            images.append(a);
            a.animate({opacity:1}, 500);
        }

        var replacement = img.attr("alt") + (img.attr("title").length ? "<br/>" + "<span class=\"bottom\">" + img.attr("title") + "</span>" : "");
        var credit = img.attr("title");
        if (!credit) credit = "";

        if (replacement)
        {
            var thing = sIFR.getReplacementByFlashElement($(".widget-info p .sIFR-flash").get(0));
            if (thing)
            {
                thing.replaceText(replacement);
            }
        }

        // $("#credits").html(credit);
    });

    $(".widget a:first").addClass("active");

    $("#submit-comment").click(function(event)
    {
        event.preventDefault();

        var data = $("#comment-submit-form").serialize();
        var tableName = $("#table_name").val();
        var self = $(this);

        $(this).hide();

        $("#comment").attr("disabled", true);
        $("#comment-url").attr("disabled", true);

        var what = (tableName == "articles") ? "an article" : "a blog";

        $.ajax({
            url:"/comment",
            data:data,
            dataType:"json",
            type:"POST",
            success:function(data, textStatus)
            {
                if (data.error != undefined)
                {
                    self.show();

                    $("#comment").attr("disabled", false);
                    $("#comment-url").attr("disabled", false);
                    $("#comment-error").html(data.error).show();
                }
                else
                {
                    if ($("#facebook_uid").length)
                    {
                        var attachment;
                        var actionLinks;

                        if (tableName == "articles")
                        {
                            attachment = {
                                name        : $(".article-titles-h h1").text(),
                                href        : document.location.href,
                                caption     : "{*actor*} posted a comment on " + what + " on Ohio Authority",
                                media       : [
                                    {
                                        'type' : 'image',
                                        'src'  : "http://ohioauthority.com" + $(".images #image-1").attr('src'),
                                        'href' : document.location.href
                                    }
                                ]
                            };
                            actionLinks =  [{
                                "text" : "Read Article",
                                "href" : document.location.href
                            }];
                        }
                        else if (tableName == "blogs")
                        {
                            attachment = {
                                name        : $(".blog-post h2 a").text(),
                                href        : document.location.href,
                                caption     : "{*actor*} posted a comment on " + what + " on Ohio Authority"
                            };
                            actionLinks =  [{
                                "text" : "Read Blog",
                                "href" : document.location.href
                            }];
                        }

                        Typeoneerror_Facebook.streamPublish('', attachment, actionLinks);
                    }
                    $("#comment-error").removeClass("error").addClass("success").html(data.success).show();
                    $("#comment-error").show();
                }
            }
        });
    });

    $("#btn-login").click(function(event)
    {
        event.preventDefault();

        document.forms["login-form"].submit();
    });

    $(".default-text").defaultText();

    $.searchCalendar = function(url)
    {
        if (url == undefined) url = "/calendar/search";

        $(".loading").show();
        $("#calendar-results").empty();

        $.ajax({
            url : url,
            dataType : "html",
            complete : function(XMLHttpRequest, textStatus)
            {
                $(".loading").hide();
            },
            success : function(data, textStatus)
            {
                $("#calendar-results").html(data);
            }
        });
    };

    $(".calendar-pages a").live('click', function(event)
    {
        event.preventDefault();
        var url = $(this).attr("href");
        $.searchCalendar(url);
    });

    $("#cal-search").click(function(event)
    {
        event.preventDefault();

        var url = "/calendar/search";
        var data = {};

        if (!$("#name").isDefaultText())
        {
            url += "/value/" + encodeURIComponent($("#name").val());
        }

        if ($("#category").val() != "")
        {
            url += "/category/" + encodeURIComponent($("#category").val());
        }

        $.searchCalendar(url);
    });

    $("#cal-reset").click(function(event)
    {
        event.preventDefault();
        $("#category").val("");
        $("#name").defaultText("reset");
    });

    $.searchRestaurantsSubmit = function()
    {
        var url = "/dish-on-dining/search"

        if (!$("#value").isDefaultText()) url += "/value/" + encodeURIComponent($("#value").val());
        if ($("#cuisine").val() != "") url += "/cuisine/" + $("#cuisine").val();
        if ($("#price").val() != "") url += "/price/" + $("#price").val();
        if ($("#location").val() != "") url += "/location/" + $("#location").val();
        // if ($("#meal_time").val() != "") url += "/meal_time/" + $("#meal_time").val();

        $.searchRestaurants(url);
    }

    $.searchRestaurants = function(url)
    {
        if (url == undefined) url = "/dish-on-dining/search";

        $("#rloader").show();
        $("#search-results").empty();

        $.ajax({
            url : url,
            dataType : "html",
            complete : function(XMLHttpRequest, textStatus)
            {
                $("#rloader").hide();
            },
            success : function(data, textStatus)
            {
                $("#search-results").html(data);
            }
        });
    };

    $("#rest-search, #begin-search").click(function(event)
    {
        event.preventDefault();

        var url = "";
        var data = {};

        if (!$("#value").isDefaultText()) url += "/value/" + encodeURIComponent($("#value").val());
        if ($("#cuisine").val() != "") url += "/cuisine/" + $("#cuisine").val();
        if ($("#price").val() != "") url += "/price/" + $("#price").val();
        if ($("#location").val() != "") url += "/location/" + $("#location").val();

        if ($(this).attr("id") == "begin-search")
        {
            url = "/dish-on-dining/index" + url;
            //document.forms["gourmet_search_widget"].submit();
            window.location = url;
        }
        else
        {
            url = "/dish-on-dining/search" + url;
            // if ($("#meal_time").val() != "") url += "/meal_time/" + $("#meal_time").val();
            $.searchRestaurants(url);
        }
    });

    $("#rest-reset").click(function(event)
    {
        event.preventDefault();

        $("#cuisine").val("");
        $("#price").val("");
        $("#location").val("");
        $("#meal_time").val("");

        $("#value").defaultText("reset");
    });

    $(".read-review").live("click", function(event)
    {
        event.preventDefault();

        $(this).parent().parent().find(".review").toggle();

        if (!$(this).data("open"))
        {
            $(this).text("close review");
            $(this).data("open", true)
        }
        else
        {
            var open = $(this).data("open");
            if (open)
            {
                $(this).text("read review");
                open = false;
            }
            else
            {
                $(this).text("close review");
                open = true;
            }
            $(this).data("open", open);
        }
    });

    $(".calendar .calendar-wrapper .day a").click(function(event)
    {
        event.preventDefault();

        $(".calendar .calendar-wrapper .day a").parent().removeClass("selected");
        $(this).parent().addClass("selected");

        $.searchEvents($(this).attr("href"));
    });

    $.searchEvents = function(url)
    {
        $("#sidebar-loader").show();

        $.get(url, null, function(data, textStatus)
        {
            $("#sidebar-loader").hide();
            if (textStatus == "success")
            {
                $("#calendar-output").html(data);
            }
        }, "html");
    }

    $(".facebook-connect").click(function(event)
    {
        event.preventDefault();

        FB.Connect.requireSession(function()
        {
            window.location.reload();
        });
    });

    // $("#searcher").hover(
    //     function() {
    //         $(this).find("#search-form").css("display", "inline");
    //         $("#go-arrow").hide();
    //         $("#no-arrow").show();
    //     },
    //     function() {
    //         $(this).find("#search-form").hide();
    //         $("#go-arrow").show();
    //         $("#no-arrow").hide();
    //     }
    // );

    $("#search-form").submit(function(event)
    {
        event.preventDefault();

        if (!$("#search-value").isDefaultText() && $("#search-value").val() != "")
        {
            document.forms['search-form'].submit();
        }
    });

    $(".audioplayer").each(function(index, element)
    {
        var source = $(element).text();
        var id = $(element).attr("id");
        AudioPlayer.embed(id, {soundFile:source});
        $(id).wrap("<div/>");
    });

    $.rotateMarquee = function(index)
    {
        // console.log(index);
        var current = $(".widget a:nth-child(" + (index + 1) + ")");

        // remove all activate
        $(".widget a").removeClass("active");
        current.addClass("active");

        var id = parseInt(current.text());
        var widget = current.parent().parent();
        var images = widget.find(".images");
        var img = widget.find(".images #image-" + id);
        var a = widget.find(".images #a-" + id);
        var url = current.href;
        var readText = a.attr("href").indexOf("/blog/") ? "read article" : "read blog";

        $("#read").attr("href", a.attr("href")).text(readText);

        a.css("opacity", 0);
        images.append(a);
        a.animate({opacity:1}, 500);

        var replacement = img.attr("alt") + (img.attr("title").length ? "<br/>" + "<span class=\"bottom\">" + img.attr("title") + "</span>" : "");
        var credit = img.attr("title");

        sIFR.getReplacementByFlashElement($(".widget-info p .sIFR-flash").get(0))
            .replaceText(replacement);
    }


    $(".video-link").click(function(event)
    {
        event.preventDefault();
        var href = $(this).attr("href");
        var embedCode = href.substr(href.lastIndexOf("/") + 1);
        Shadowbox.open({
            content:    '<div><object width="480" height="320" type="application/x-shockwave-flash" id="my_swf_div" name="my_swf_div" data="http://vimeo.com/moogaloop.swf?clip_id=' + embedCode + '&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1"><param name="menu" value="false"><param name="bgcolor" value="#FFFFFF"><param name="wmode" value="opaque"><param name="allowfullscreen" value="true"><param name="allowscriptaccess" value="always"></object></div>',
            player:     "html",
            title:      $(this).attr("title"),
            height:     320,
            width:      480
        });
    });


}); // document ready

var marqueeInterval = null;
var sifrActive = true;

if (sifrActive)
{
    var gcm = { src: "/swf/gotham-cm.swf" };
    var gb  = { src: "/swf/gotham-b.swf" };

    sIFR.activate(gcm, gb);

    sIFR.replace(gcm, {
        css: [
            ".sIFR-root { background-color:transparent; color:#666666; font-size:16px; }"
        ],
        filters         : {
            DropShadow  : {
                knockout : false,
                color    : "#FFFFFF",
                angle    : 90,
                strength : 1,
                distance : 1
            }
        },
        fitExactly      : true,
        forceSingleLine : true,
        selector: ".module-header h3 span",
        transparent: true,
        tuneHeight: 0,
        tuneWidth: 2
    });

    sIFR.replace(gb, {
        css: [
            ".sIFR-root { background-color:transparent; color:#010101; font-size:40px; letter-spacing:-3; text-transform:uppercase }",
            ".c-home-and-style {color:#A631D2;}",
            ".c-food-and-drink {color:#999933;}",
            ".c-arts {color:#990033;}",
            ".c-region {color:#E95808;}",
            ".c-health-and-education {color:#339999;}",
        ],
        fitExactly      : true,
        forceSingleLine : true,
        selector: ".category-titles .titles-left h1",
        transparent: true,
        tuneHeight: -12,
        tuneWidth: 2
    });

    sIFR.replace(gcm, {
        css: [
            ".sIFR-root { background-color:transparent; color:#ffff33; font-size:14px; letter-spacing:0.1; }",
            ".bottom { color:#FFFFFF; font-size:12px }",
        ],
        selector: "#article-image-widget .widget-info p",
        fitExactly : true,
        transparent: true,
        tuneHeight: 0,
        tuneWidth: 0
    });

    sIFR.replace(gcm, {
        css: [
            ".sIFR-root { background-color:transparent; color:#ffff33; font-size:24px; leading:-10; }",
            ".bottom { color:#FFFFFF; font-size:15px; }",
        ],
        selector: "#featured-articles .widget-info p",
        fitExactly : false,
        transparent: true,
        tuneHeight: 0,
        tuneWidth: 0
    });

}

if (window.Shadowbox != undefined)
{
    Shadowbox.init({
        players : ["html", "img", "iframe", "flv"]
    });
}
