$(document).ready(function() {
        
    window.setTimeout(function(){
        $('.annotatedWait')
            .each(function(){
                var target = $(this).siblings('a.hiddenLink').attr('href')
                if(target)
                {
                    $(this).load(target, function(){
                        createEditableAreas();
                    });
                }
            })
    }, 100)

    $('.annotatedNext, .annotatedPrev').live('click', function(){
        var target = $(this).attr('href');

        var pDiv = $(this).parents('.annotatedWait');
        pDiv.html('<div class="ajaxWaitGrey"></div><p>Annotations objects will be loaded</p>')
        pDiv.load(target, function(){
            createEditableAreas();
        });
        return false;
    });

    $('.annotatedShowAll').live('click', function(){
        var target = $(this).attr('href');

        var pDiv = $(this).parents('.annotatedWait');
        pDiv.html('<div class="ajaxWaitGrey"></div><p>Annotations objects will be loaded</p>')
        pDiv.load(target, function(){
            createEditableAreas();
        });

        var oldFormAction = $('.AddAnnotationForm').attr("action")
        if (oldFormAction){
            var newFormAction = oldFormAction.replace(/i[\d]{1,3}/, 'i' + $(this).attr('id'))
            $('.AddAnnotationForm')
                .attr("action", newFormAction)
        }
             
        return false;
    });

    $('.AddAnnotationForm')
        .ajaxForm({
            dataType: 'json',
            beforeSubmit: setAnnotationOffset,
            success: function(data){
                if(data.successful)
                {
                    $('.annotations_listbox .hiddenJS .arrow')
                        .trigger('click')
                    $('.annotations_listbox .annotatedWait')
                        .load(data.url)
                    $('#id_text').clearFields();
                }
            },
            resetForm : false
        });

    $('.AddLiveAnnotationForm')
        .ajaxForm({
            dataType: 'json',
            success: function(data){
                if(data.successful)
                {
                    $('.annotations_listbox .hiddenJS .arrow')
                        .trigger('click')
                    $('.annotations_listbox .annotatedWait')
                        .load(data.url, function()
                        {
                            createEditableAreas()
                        })
                    $('#id_text').clearFields();
                }
            },
            resetForm : false
        });

    $('.AddLiveAnnotationForm #id_text, .AddAnnotationForm #id_text, .editable_textarea input')
        .keypress(function(event, data){
            if (event.keyCode == 13)
                {
                    if (!event.shiftKey)
                    {
                        $(this).parents('form').submit();
                        return false;
                    }
                    else
                    {
                        event.shiftKey = false;
                    }

                }
        })

    createEditableAreas()
});

var wikiMCE = function(settings, original) {
            if ($(original).context.tagName.toLowerCase() == "textarea") {
                tarea_id = $(original).attr("id");
            } else {
                tarea_id = $(original).attr("id") + "MCE";
            }
            
            wikicodeSettings = {
                plugins : "wikicode",
                inline_styles : false,
                mode : "specific_textareas",
                entities : "",
                editor_selector : "wysiwyg",
                skin : "o2k7",
                skin_variant: "black",
                theme_advanced_toolbar_location : "top",
                theme_advanced_toolbar_align : "left",
                theme_advanced_buttons1 : "bold, italic, underline,forecolor,|,justifyleft,justifycenter,justifyright,blockquote,cite,|,bullist,numlist,|,link,image,|,fontselect,fontsizeselect",
                theme_advanced_buttons2 : "",
                theme_advanced_buttons3 : ""
            };
            
            tinyMCE_defaultSettings = tinyMCE.settings;
            tinyMCE.settings = wikicodeSettings;
            tinyMCE.execCommand('mceAddControl', false, tarea_id);
            tinyMCE.settings = tinyMCE_defaultSettings;
        }

var createEditableAreas = function(){
    $.editable.addInputType('wikimce', {
        element : function(settings, original) {
            tarea_id = $(original).attr("id") + "MCE";
            
            
            var tarea = $('<textarea></textarea>');
            tarea.attr("id", tarea_id);
            
            if (settings.cols)
                tarea.attr("cols", settings.cols);
            
            if (settings.rows)
                tarea.attr("rows", settings.rows);
            
            $(this).append(tarea);
            return tarea;
        },
        
        plugin  : wikiMCE,
        
        reset   : function(settings, original) {
            tarea_id = $(original).attr("id") + "MCE";
            tinyMCE.execCommand('mceRemoveControl', true, tarea_id);
            original.reset(this);
        },
        
        submit  : function(settings, original) {
            tarea_id = $(original).attr("id") + "MCE";
            tinyMCE.triggerSave();
            tinyMCE.execCommand('mceRemoveControl', true, tarea_id);
        }
    });
    
    $('.editable_textarea').editable('/manuscript/manage/edit/', {
            method   : 'POST',
            loadurl  : '/manuscript/manage/load/',
            loadtype : 'POST',
            type     : 'wikimce',
            rows     : 3,
            cols     : 100,
            cancel   : 'Cancel',
            submit   : 'OK',
            onblur   : 'ignore',
            event    : 'dblclick',
        }
    );
    
    $('.AddAnnotationForm textarea').each(
        function(index) {
            var obj = $(this);
            wikiMCE(obj, obj);
        }
    );
}

var setAnnotationOffset = function(){
    $('#id_offset').val(Math.round(getvideoseconds()));
    return true;
}
