function camfeed_refresh_image($img) {
    if ($img) {
        var camfeed_url = $img.attr("src");
        if (camfeed_url.match(/^([^\?]+)/)) {
            camfeed_url = RegExp.$1;
        }
        camfeed_url += "?"+Math.random();
        $img.attr("src", camfeed_url);
        $img.data("camfeed_timer_id",
                  setTimeout(function () { camfeed_refresh_image($img) }, $img.data("camfeed_period")));
    }
}

$(document).ready(function() {
    $(".camfeed-container").find("input[class*=camfeed-stop-button],*[class*=camfeed-stop-label]").css({visibility: "hidden"});
    $(".camfeed-image").data("camfeed_period", 5000);
    $(".camfeed-play-button").click(function() {
        var $container = $(this).closest(".camfeed-container");
        camfeed_refresh_image($container.find(".camfeed-image"));
        $container.find("input[class*=camfeed-play-button],*[class*=camfeed-play-label]").css({visibility: "hidden"});
        $container.find("input[class*=camfeed-stop-button],*[class*=camfeed-stop-label]").css({visibility: "visible"});
    });
    $(".camfeed-stop-button").click(function() {
        var $container = $(this).closest(".camfeed-container");
        var $img = $container.find(".camfeed-image");
        var timer_id = $img.data("camfeed_timer_id");
        if (timer_id) {
            clearTimeout(timer_id);
            $img.data("camfeed_timer_id", null);
        }
        $container.find("input[class*=camfeed-stop-button],*[class*=camfeed-stop-label]").css({visibility: "hidden"});
        $container.find("input[class*=camfeed-play-button],*[class*=camfeed-play-label]").css({visibility: "visible"});
    });
});
