$(document).ready(function(){

    // Capture the enter key in the campaign textbox
    $("#newCampaign").keydown(function(e){
	if (e.keyCode == 13) {
            $("#_createNewCampaign").click();
            return false;
	}
	if ( e.keyCode == 8 && $('#newCampaign').val().length < 2 )
		$('#_createNewCampaign').attr('disabled', true);
	else
		$('#_createNewCampaign').attr('disabled', false);
    });

    //
    // Campaign
    //
    $("#_createNewCampaign").click(function(e){
        e.preventDefault();
        var campaignName = $("#newCampaign").val();
        var affId        = $("#affId").val();

        if (campaignName === '') {
            alert('You must enter a Campaign name!');
            $("#newCampaign").focus();
            return false;
        }

        $.getJSON(
            '/addcampaign/',
            {affId: affId, label: campaignName},
            function (data, textStatus) {
                if (data.error) {

                    // Select the already existing entity
                    if (data.error.indexOf('already exists')) {
                        $("#campaign option").each(function(index){
                            var optionValue       = this.text.toLowerCase();
                            var campaignNameLower = campaignName.toLowerCase();
                            if (optionValue == campaignNameLower) {
                                this.selected = true;
                                $("#newCampaign").blur();
                                $("#campaign").focus();
                                return false;
                            }
                        });
                    } else {
                        $("#newCampaign").focus();
                    }

                    $("#newCampaign").value = "";
                    $("#campaignCreateSuccess").hide();
                    $("#campaignCreateError").text(data.error).fadeIn("normal");
                    return false;
                }

                var campaign = data.campaign;
                $("#campaign")
                    .append('<option value="' + campaign.id + '">' + campaign.label + '</option>')
                    .val(campaign.id)
                    .focus();
                $("#newCampaign").val("").blur();
                $("#campaignCreateError").hide();
                $("#campaignCreateSuccess").fadeIn("normal", function(){
                    t = setTimeout(function(){
                        $("#campaignCreateSuccess").fadeOut();
                    }, 5000);
                });
            }
        );

        return false;
    });

    $("#affiliateCampaign").change(function(){
        $("#campaignCreateSuccess").fadeOut();
        $("#campaignCreateError").fadeOut();
    });

});
