function updateEmbedSrcParams()
{
    var $embedCodeParams = "?";
    var $streamMode = getStreamMode();
    if ($streamMode == "manual") {
        var $stream = $("input[name=player_stream_url]:radio:checked").val();
        $embedCodeParams += "stream="+$stream;
    } else if ($streamMode == "auto") {
        $embedCodeParams += "stream=auto";
    }

    $embedCodeParams += "&title="+getPlayerTitle();

    $embedCodeParams += "\"";

    $("textarea[name=player_embed_src]").val(function(index, value) {
        return value.replace(/\?.*?"/, $embedCodeParams);
    });

    updatePlayerIframeSrc($("textarea[name=player_embed_src]").val());
}

function updatePlayerIframeSrc(iframe_text) {
    var $player_iframe = $("#player_form iframe");
    var player_iframe_src = iframe_text.match(/http.*?"/)[0].slice(0, -1);
    $player_iframe.attr('src', player_iframe_src);
}

function getStreamMode() {
    return $("input[name=player_stream_mode]:radio:checked").val();
}

function getPlayerTitle() {
    return $("input[name=player_title]").val();
}

$(document).ready(function() {

    $("#player_stream_url-element").hide();

    // stream mode change event
    $("#player_stream_mode-element").change(function() {
        var $streamMode = getStreamMode();

        if ($streamMode == "auto") {
            $("#player_stream_url-element").hide();

        } else if ($streamMode == "manual") {
            $("#player_stream_url-element").show();

            $("input[name=player_stream_url]").each(function(i, obj) {
                if ($(this).parent().text().toLowerCase().indexOf("opus") >= 0) {
                    $(this).attr("disabled", "disabled");
                }
            });
        }

        updateEmbedSrcParams();
    });

    // stream url change event
    $("#player_stream_url-element").change(function() {
        updateEmbedSrcParams();
    });

    // display title checkbox change event
    $("#player_display_title").change(function() {
        if ($(this).prop("checked")) {
            $("#player_title-label").show();
            $("#player_title-element").show();
        } else {
            $("#player_title-label").hide();
            $("#player_title-element").hide();
        }
        updateEmbedSrcParams();
    });

    // title textbox change event
    // setup before functions
    var typingTimer;
    var doneTypingInterval = 3000;

    // on keyup, start the countdown
    $("input[name=player_title]").keyup(function(){
        clearTimeout(typingTimer);
        typingTimer = setTimeout(updateEmbedSrcParams, doneTypingInterval);
    });

    // on keydown, clear the countdown
    $("input[name=player_title]").keydown(function(){
        clearTimeout(typingTimer);
    });
});

